#sql #oracle
#sql #Oracle
Вопрос:
Я написал SQL-запрос в Oracle, который содержит 529 строк.
Не слишком ли длинный этот запрос для успешного выполнения?
Комментарии:
1. 529 — это вообще не проблема. Я предполагаю, что Oracle может возвращать многие миллиарды строк. Или триллионы.
2. Не строка результата, в строке запроса
3. 529 строк чего?
4. @Rajat в моем запросе выбора
5. Я не думаю, что существует такое ограничение, как 529. Смотрите здесь docs.oracle.com/cd/E11882_01/timesten.112/e21643 /… Что происходит, когда вы запускаете этот код? Возвращает ли он ошибку? Если да, пожалуйста, укажите это в вопросе.
Ответ №1:
Документация Oracle по ограничениям базы данных не указывает точное ограничение на длину SQL-запроса. (Обратите внимание, что количество строк не является показателем, а является общей длиной строки запроса.
Там есть только это примечание
Ограничение на длину SQL-запроса зависит от многих факторов, включая конфигурацию базы данных, дисковое пространство и память
Вы можете быть уверены, что там нет такого ограничения в 4000 символов (как для VARCHAR2), и запрос в 500 строк не является чем-то необычным.
Вам придется потрудиться, чтобы написать запрос, превышающий ограничение длины.
Более «реалистичным» является то, что вы пересекаете некоторые другие ограничения, такие как 255 подзапросов в предложении WHERE .
Проверьте приведенную выше ссылку для Oracle 19 для получения полного списка ограничений.
Пока что более важным для проверки длины запроса является этот тест:
просмотрите запрос через 14 дней, и если он хорошо читаем и понятен — он имеет правильную длину!
Ответ №2:
Вы можете ограничить количество строк, возвращаемых из вашего запроса, используя предложение rownum
--to get any ten rows from your query output..
select *
from <your query>
where rownum<=10;
Комментарии:
1. не проблема, просто я думаю, что мой запрос настолько сложный….
2. @Vanessa0612 могу ли я спросить, почему при понижении, первоначальный вопрос, который был у OP, заключался в том, как ограничить количество строк?
3. @GeorgeJoseph я думаю, что здесь какое-то недоразумение. OP не пытался ограничить количество строк вывода , но запроса . Ваш ответ синтаксически корректен, но он не отвечает на фактический вопрос. Кроме того, 529 строк вообще не являются проблемой для БД. Плюс, как я предполагаю, не все строки содержат действительно код, и вы используете чистый отступ (который является обязательным при написании более сложных запросов).
4. @procra когда вопрос был первоначально составлен, сообщение было другим, в нем говорилось об ограничении количества строк, и мой ответ был в строках с этим ответом. Теперь выглядит иначе, что мой ответ и объяснение не совпадают с отредактированным вопросом. Однако, когда я получил отрицательный ответ, в моем ответе именно тогда я указал на это конкретно.