Es fällt mir schwer, gespeicherte Prozeduren von SQL Server auf Oracle zu konvertieren, damit unser Produkt damit kompatibel ist.
Ich habe Abfragen, die den neuesten Datensatz einiger Tabellen basierend auf einem Zeitstempel zurückgeben:
SQL Server:
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
=> Damit erhalte ich den neuesten Datensatz
Aber Oracle:
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
=> Damit erhalte ich den ältesten Datensatz (wahrscheinlich abhängig vom Index), unabhängig von der ORDER BY
Aussage!
Ich habe die Oracle-Abfrage so gekapselt, dass sie meinen Anforderungen entspricht:
SELECT *
FROM
(SELECT *
FROM raceway_input_labo
ORDER BY t_stamp DESC)
WHERE rownum <= 1
und es funktioniert. Aber es klingt für mich nach einem schrecklichen Hack, besonders wenn ich viele Datensätze in den beteiligten Tabellen habe.
Was ist der beste Weg, um dies zu erreichen?