El uso de un ORDER BY
dentro de un INSERT SELECT
no tiene sentido siempre que pueda cambiar el contenido de los datos insertados, es decir, con una secuencia NEXTVAL
incluido en el SELECT
cláusula. Y esto, incluso si las filas insertadas no se ordenan cuando se recuperan, esa es la función de su ORDER BY
cláusula en su SELECT
cláusula al acceder a las filas.
Para tal objetivo, puede usar una solución alternativa colocando su ORDER BY
cláusula en una subconsulta , y funciona:
INSERT INTO myTargetTable
(
SELECT mySequence.nextval, sq.* FROM
( SELECT f1, f2, f3, ...fx
FROM mySourceTable
WHERE myCondition
ORDER BY mySortClause
) sq
)