O uso de um
ORDER BY
dentro de um INSERT SELECT
é não é inútil desde que possa alterar o conteúdo dos dados inseridos, ou seja, com uma sequência NEXTVAL
incluído no SELECT
cláusula. E isso mesmo que as linhas inseridas não sejam classificadas quando buscadas - esse é o papel do seu ORDER BY
cláusula em seu SELECT
cláusula ao acessar as linhas. Para esse objetivo, você pode usar uma solução alternativa colocando seu
ORDER BY
cláusula em uma subconsulta , e funciona:INSERT INTO myTargetTable
(
SELECT mySequence.nextval, sq.* FROM
( SELECT f1, f2, f3, ...fx
FROM mySourceTable
WHERE myCondition
ORDER BY mySortClause
) sq
)