J'ai du mal à convertir des procédures stockées de SQL Server vers Oracle pour que notre produit soit compatible avec celui-ci.
J'ai des requêtes qui renvoie l'enregistrement le plus récent de certaines tables, basé sur un horodatage:
Serveur SQL:
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
=> Cela me retournera l'enregistrement le plus récent
Mais Oracle:
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
=> Cela me rendra l'enregistrement le plus ancien (probablement en fonction de l'index), quelle que soit la 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 il fonctionne. Mais cela me semble un horrible hack, surtout si j'ai beaucoup de disques dans les tables concernées.
Quelle est la meilleure façon d'y parvenir?