Estou com dificuldade para converter procedimentos armazenados do SQL Server para Oracle para ter nosso produto compatível com ele.
Eu tenho consultas que retornam o registro mais recente de algumas tabelas, com base em um carimbo de data / hora:
Servidor SQL:
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
=> Isso me devolve o registro mais recente
Mas a Oracle:
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
=> Isso retornará o registro mais antigo (provavelmente dependendo do índice), independentemente da ORDER BY
declaração!
Encapsulei a consulta Oracle desta maneira para corresponder aos meus requisitos:
SELECT *
FROM
(SELECT *
FROM raceway_input_labo
ORDER BY t_stamp DESC)
WHERE rownum <= 1
e funciona. Mas me parece um truque horrível, principalmente se eu tiver muitos registros nas tabelas envolvidas.
Qual a melhor maneira de alcançar isto ?