Максимальная длина SQL-запроса в Oracle

#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 когда вопрос был первоначально составлен, сообщение было другим, в нем говорилось об ограничении количества строк, и мой ответ был в строках с этим ответом. Теперь выглядит иначе, что мой ответ и объяснение не совпадают с отредактированным вопросом. Однако, когда я получил отрицательный ответ, в моем ответе именно тогда я указал на это конкретно.