Почему OraOLEDB.Oracle GetRecordSet () выдает ошибку «ORA-00907: отсутствует правая скобка»? - PullRequest
0 голосов
/ 02 февраля 2011

К сожалению, я работаю над старым приложением VB6, которое создает огромный (11902 символов) специальный оператор SQL, который затем передается методу GetRecordSet () моего DBConnection. Приложение использует провайдер OraOLEDB.Oracle. Однако при выполнении метода GetRecordSet () я получаю следующую ошибку:

ORA-00907: отсутствует правая скобка

Теперь я взял содержимое строки, которая передается в функцию GetRecordSet (), и тщательно изучил ее, и в ней нет пропущенных скобок. Кроме того, я могу без труда выполнить оператор выбора в Oracle SQL Developer, а также в SQL * Plus. Поэтому я уверен, что строка является синтаксически правильной.

Я начинаю подозревать, что в провайдере происходит что-то подозрительное - возможно, строка слишком длинная и где-то ее усекают?

Кто-нибудь может мне помочь?

Спасибо, Стив

1 Ответ

1 голос
/ 03 февраля 2011

Проверьте файл трассировки оракула.Сначала установите сеанс в режиме трассировки: измените сеанс set sql_trace = true;

и выполните запрос в том же сеансе.Вы можете найти файл трассировки на сервере базы данных в каталоге, указанном user_dump_dest.

Если запрос полностью находится в файле трассировки, он полностью получен базой данных.

...