L'uso di un ORDER BY
all'interno di un INSERT SELECT
non ha senso purché possa modificare il contenuto dei dati inseriti, ovvero con una sequenza NEXTVAL
incluso nel SELECT
clausola. E questo anche se le righe inserite non verranno ordinate quando vengono recuperate, questo è il ruolo del tuo ORDER BY
clausola nel tuo SELECT
clausola durante l'accesso alle righe.
Per tale obiettivo, puoi utilizzare una soluzione alternativa inserendo il tuo ORDER BY
clausola in una sottoquery , e funziona:
INSERT INTO myTargetTable
(
SELECT mySequence.nextval, sq.* FROM
( SELECT f1, f2, f3, ...fx
FROM mySourceTable
WHERE myCondition
ORDER BY mySortClause
) sq
)