Мне трудно преобразовать хранимые процедуры из 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
и это работает. Но для меня это звучит как ужасный взлом, особенно если у меня много записей в задействованных таблицах.
Как лучше всего этого добиться?