2013-03-20 1 views
1

Я запрашиваю базу данных Oracle (версия 9 или 10) из C#, используя класс OracleCommand.Есть ли максимальная длина текста запроса в OracleCommand.CommandText?

String query = GetQuery(); //may produce quite lenghty queries... 
OracleCommand command = connection.CreateCommand(); 
command.CommandText = query; 
command.CommandType = CommandType.Text; 

Этот класс в Oracle.DataAccess.Client имен в Oracle.DataAccess.dll (версия "10.2.0.100"), которая от Oracle, а не Microsoft. Как я узнал, это довольно старый, но я не люблю меняться, если нет необходимости.

Я беспокоюсь, есть ли максимальная длина для этой строки запроса? Существует ли ограничение на этот класс или базовую базу данных Oracle?

Примечание: Я знаком с Microsoft SQL-сервером, но очень новым для Oracle. Также я искал документы, но на этот раз Google не очень помог в этой детали.

+1

В 11 г я видел запросы, которые длились несколько строк ТЫСЯЧИ (не написано мною) - человек, который их написал, давно ушел, но, как выразился Шекспир, «Зло, которое люди делают после них ...»). Иными словами - предел (в 11g) очень велик, и если вы столкнулись с этим, вы сделали что-то очень, очень неправильно. –

ответ

2

Oracle9i Database Reference заявляет ограничение на длину SQL заявление:

64 K максимум; конкретные инструменты могут наложить нижние пределы

Similar page on 11g не объявляет точное ограничение, хотя:

Предел о том, как долго может быть SQL заявление, зависит от многих факторов, включая конфигурацию базы данных , дисковое пространство и память

Я считаю, что мы можем быть уверены, что 10 и 11 v поддержка базы данных оракула поддерживает запросы 64k.

Документы для класса OracleCommand не вводят никаких исключений или ограничений на длину CommandText.

+0

Спасибо, что помогли мне на этом! – Marcel

Смежные вопросы