J'ai du mal à convertir les procédures stockées de SQL Server à Oracle pour que notre produit soit compatible avec ce dernier.
J'ai des requêtes qui renvoient l'enregistrement le plus récent de certaines tables, sur la base d'un horodatage :
SQL Server :
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
\=> Cela me renvoie l'enregistrement le plus récent
Mais Oracle :
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
\=> Cela me renverra l'enregistrement le plus ancien (probablement en fonction de l'index), quel que soit le numéro de l'enregistrement. ORDER BY
déclaration !
J'ai encapsulé la requête Oracle de cette façon pour répondre à mes besoins :
SELECT *
FROM
(SELECT *
FROM raceway_input_labo
ORDER BY t_stamp DESC)
WHERE rownum <= 1
et ça marche. Mais cela me semble être un horrible hack, surtout si j'ai beaucoup d'enregistrements dans les tables concernées.
Quelle est la meilleure façon d'y parvenir ?