powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROWNUM и его последствия
1 сообщений из 1, страница 1 из 1
ROWNUM и его последствия
    #32011613
ThyNibelungenhord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROWNUM и его последствия:
Давно решил спросить у мудрых Ораклистов в чем здесь проблема:
CREATE TABLE MY_TABLE
(
BID NUMBER(10) primary key, /* UNIQUE ASC INDEX на BID */
SID NUMBER(10),
NAME VARCHAR2(10)
);
Инсертим туда все что угодно, значения не имеет.

Теперь самое интересное
SELECT BID, SID, NAME FROM MY_TABLE WHERE
BID>=
(SELECT MAX(BID) FROM
(SELECT BID FROM MY_TABLE
WHERE BID>=6926 AND BID<=7026 AND ROWNUM<=10)
)
Приводит к ошибке, да к какой: ORA-03113, end-of-file on communication channel

Правиться так:
SELECT BID, SID, NAME FROM MY_TABLE WHERE
BID>=
(SELECT MAX(BID) FROM
(SELECT BID FROM MY_TABLE
WHERE BID>=6926 AND BID<=7026) WHERE ROWNUM<=10
)
Все ОК, сколько то там роус селектед.

Вот не понятно, почему я должен ROWNUM за скобки ставить? По идее если у меня на BID создан ASC индекс, то запрос SELECT BID FROM MY_TABLE WHERE BID>=6926 AND BID<=7026 AND ROWNUM<=10 возвратит мне 10 записей в которых BID будут не перемешаны хаотично (так как не используеться ORDER BY) а возвратяться в порядке возрастания. Далее береться максимальное значение из этой выборки и руководствуясь им делаеться окончательный запрос.

Допустим есть некий конфликт индексов между запросами SELECT BID, SID, NAME FROM MY_TABLE и SELECT BID FROM MY_TABLE WHERE BID>=6926 AND BID<=7026 AND ROWNUM<=10. Но, даже если я заменю SELECT BID, SID, NAME FROM MY_TABLE на SELECT ID FROM MY_SOME_TABLE WHERE ID>=...(здесь подзапрос), то все равно возникнет ошибка.

Так в чем же здесь дело???????
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROWNUM и его последствия
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]