Oracle Different Connection Query возвращает другой результат (Uncommit Transaction) - PullRequest
0 голосов
/ 04 февраля 2019

У меня 2 оракула подключения, использующих один и тот же запрос, но возвращающих разные результаты:

SELECT TO_CHAR(DATE_TIME, 'yyyy-MM-dd hh:mi:ss' ) myDateTime,
t.*
FROM TMI_ISD_AUDIT_TRAIL t
WHERE NVL(USER_ID,'') LIKE '%'
AND NVL(Action,'') LIKE '%'
AND NVL(success,'') LIKE '%%'
AND TO_CHAR(DATE_TIME, 'yyyy-MM-dd' ) LIKE '%'
AND rownum <100

Запрос возврата 1 строка enter image description here

Запрос возврата 2 строки enter image description here

IP-соединение 1: enter image description here IP-соединение 2: enter image description here

1 Ответ

0 голосов
/ 04 февраля 2019

С Oracle 12 вы можете использовать сначала извлекать вместо ROWNUM для заказа

ROWNUM оценивается перед ORDER BY, а не ROWNUMиспользоваться.

SELECT TO_CHAR(DATE_TIME, 'yyyy-MM-dd hh:mi:ss' ) myDateTime,
t.*
FROM TMI_ISD_AUDIT_TRAIL t
WHERE NVL(USER_ID,'') LIKE '%'
AND NVL(Action,'') LIKE '%'
AND NVL(success,'') LIKE '%%'
AND TO_CHAR(DATE_TIME, 'yyyy-MM-dd' ) LIKE '%'
ORDER BY TO_CHAR(DATE_TIME, 'yyyy-MM-dd hh:mi:ss' )
FETCH FIRST 100 ROWS ONLY;

Первое предложение выборки, которое при желании можно объединить с предложением смещения результата, ограничивает число строк, возвращаемых в наборе результатов.Предложение «извлекать первое» иногда может быть полезно для извлечения только нескольких строк из большого набора результатов, обычно в сочетании с предложением ORDER BY.Использование этого пункта может дать преимущества эффективности.Кроме того, это может упростить программирование приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...