Você pode não controlar de forma confiável em que ordem o Oracle recupera a linha de uma tabela sem um
ORDER BY
. Além disso, sem o
/*+APPEND*/
dica, o Oracle armazenará as linhas fisicamente em uma tabela heap onde houver espaço, que pode não estar no final da tabela! Você pode pensar que o Oracle os insere sequencialmente, mas qualquer DML ou atividade simultânea (inserção de mais de 2 sessões) pode produzir uma organização física diferente. Você pode usar uma tabela INDEX ORGANIZED para armazenar as linhas na ordem do PK. A maioria das consultas simples depois dessa tabela produzirá um conjunto ordenado de linhas. No entanto, isso não garante que a Oracle selecione as linhas nessa ordem se você não especificar um ORDER BY (dependendo da consulta e do caminho de acesso, as linhas podem vir em qualquer ordem).
Você também pode usar uma visão com um pedido por, esta é provavelmente sua melhor aposta se você não puder tocar no aplicativo (renomeie a tabela, crie uma visão com o nome da tabela, deixe o aplicativo pensar que consulta a tabela). Não sei se é viável no seu caso.