Как я могу выяснить недопустимый оператор SQL ORA-00900 в datagrip

Обычно использование show errors может решить эту проблему в SQL * PLUS.

Однако выполнение show errors в блоке данных покажет Nothing to run, а выполнение процедуры с недопустимым оператором SQL покажет только ошибку invalid SQL statement.

Поэтому я не могу понять, что не так с моей процедурой.

Кстати, я использую macOS, поэтому настройка среды Oracle в Windows немного хлопотна.

Спасибо за помощь.


person ribilynn    schedule 07.09.2017    source источник
comment
Возможно, вы можете попробовать запустить ‹oracle_home› /rdbms/admin/utlrp.sql, подключив sqlplus в качестве администратора. Чтобы увидеть недопустимые операторы или объекты   -  person Barbaros Özhan    schedule 07.09.2017
comment
Какую версию базы данных Oracle вы используете?   -  person APC    schedule 07.09.2017


Ответы (1)


show errors - это команда SQL * Plus, а не инструкция SQL. Даже IDE, посвященные Oracle (например, PLSQL Developer), не распознают его в своих таблицах SQL, поэтому неудивительно, что универсальная IDE базы данных бросает вызов. Может быть, у DataGrip есть возможность связать исполняемый файл командной строки для запуска скриптов?

show errors - это просто оболочка для запроса к data_dictionary. Вы можете выполнить это для себя в любой среде SQL:

 select e.line, e.position, e.text 
 from user_errors e
 where e.name = 'YOUR_PROCEDURE'
 order by e.sequence;

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

person APC    schedule 07.09.2017