Мне сложно преобразовать хранимые процедуры из SQL Server в Oracle, чтобы наш продукт был совместим с ним.
У меня есть запросы, которые возвращают самую последнюю запись некоторых таблиц на основе метки времени:
SQL Server:
SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC
= > Это вернет мне самую последнюю запись
Но Oracle:
SELECT *
FROM raceway_input_labo
WHERE rownum <= 1
ORDER BY t_stamp DESC
= > Это вернет мне самую старую запись (возможно, в зависимости от индекса), независимо от оператора ORDER BY
!
Я инкапсулировал запрос Oracle таким образом, чтобы соответствовать моим требованиям:
SELECT *
FROM
(SELECT *
FROM raceway_input_labo
ORDER BY t_stamp DESC)
WHERE rownum <= 1
и он работает. Но это звучит как ужасный хак для меня, особенно если у меня много записей в вовлеченных таблицах.
Каков наилучший способ достичь этого?