Raise_application_error в разработчике SQL

Я использую SQL Developer версии 17.2.0.188. Когда я компилирую код, который вызывает некоторую ошибку, например. начать повышение_приложения_ошибки (-20001, 'ххххх'); конец;

Я вижу сообщение об ошибке в выходных данных скрипта (например, dbms_output), но я хотел бы видеть его в новом окне, подобно тому, как вы объявляете некоторую переменную привязки: номер переменной_имя: = Может ли кто-нибудь сказать мне, где в SQL Developer я могу изменить настройки сделать это окно видимым?

У меня нет опции в этой версии разработчика SQL: Инструменты -> Настройки -> Пользовательский интерфейс -> Параметры -> Диалоги DSA...

С уважением, Дерк.


person Derk    schedule 03.04.2018    source источник
comment
Вы его вообще искали?   -  person Ibo    schedule 03.04.2018
comment
но я хотел бы видеть это в новом окне, подобно тому, как вы объявляете некоторую переменную связывания: - вы хотите всплывающее диалоговое окно с текстом ошибки?   -  person thatjeffsmith    schedule 03.04.2018
comment
Точно. Речь идет о всплывающих окнах. Я, конечно, искал, но решения не нашел.   -  person Derk    schedule 03.04.2018
comment
Вряд ли у меня нет опции «Пользовательский интерфейс» в этой версии разработчика sql.   -  person Derk    schedule 03.04.2018
comment
@BarbarosÖzhan: этот вопрос относится к PL/SQL Developer от Allround Automations, этот вопрос относится к Oracle SQL Developer.   -  person Luke Woodward    schedule 03.04.2018
comment
@LukeWoodward, извините, я был сбит с толку.   -  person Barbaros Özhan    schedule 03.04.2018
comment
@LukeWoodward - честно говоря, ОП способствовал путанице, пометив вопрос [plsqldeveloper], а не [oracle-sqldeveloper] (хотя с тех пор Всадник отредактировал теги).   -  person APC    schedule 03.04.2018


Ответы (1)


Oracle SQL Developer не работает таким образом. Сообщения об ошибках записываются на панели Script Output или Query Result, в зависимости от того, выполнялся ли ваш код через F5 или F9 соответственно.

Предупреждения и ошибки компилятора PL/SQL записываются в панель Журнал - Компилятор.

введите здесь описание изображения

create or replace procedure xyz123 is
begin
 null
end;
/

show errors

Кроме того, если вы хотите, чтобы DBMS_OUTPUT был включен, установите SET SERVEROUTPUT ON. Он будет записан на панель вывода сценария.

введите здесь описание изображения

Теперь, что касается возбуждения исключения, это все еще происходит в блоке PL/SQL, и мы по-прежнему будем выполнять это через F5 (вывод сценария).

(Код, заимствованный из ответа SO)

DECLARE
    ex_custom EXCEPTION;
    PRAGMA exception_init ( ex_custom,-20001 );
BEGIN
    raise_application_error(
        -20001,
        'This is a custom error'
    );
EXCEPTION
    WHEN ex_custom THEN
        dbms_output.put_line(sqlerrm);
END;

Выполнить с помощью F5 и...

введите здесь описание изображения

person thatjeffsmith    schedule 03.04.2018
comment
В своей работе я использую SQL Developer версии 1.5.5, и появляется всплывающее окно с ошибкой. - person Derk; 04.04.2018
comment
1.5.5 около 12 лет... Пора обновиться - person thatjeffsmith; 04.04.2018
comment
Правильно ли я понимаю, что эти функции невозможно реализовать в новой версии SQL Developer? Немного странно, потому что это сообщение трудно отличить от dbms_output, особенно когда ошибка вызывает какой-то триггер. - person Derk; 04.04.2018
comment
@Derk Я только что попробовал версию 2.1 2010 года. Она работает так же, как и сегодня. Что касается перехвата исключений, рекомендуется записывать их в таблицу, как описано здесь oracle.com/technetwork/issue-archive/2012/12-mar/. Если вы запускаете этот код в скрипте через SQL*Plus, SQLcl, SQL Developer, то запись в DBMS_OUTPUT, вероятно, допустима. - person thatjeffsmith; 04.04.2018
comment
thatjeffsmith Речь идет скорее о ситуации, когда я делаю одну и ту же синтаксическую ошибку. Тогда я не хочу спрашивать себя, это какой-то триггер или моя ошибка.. Он работает так же, как и сегодня. Не могли бы вы тогда сказать мне, что я должен изменить в настройках, чтобы увидеть всплывающее окно после нажатия на выполнение скрипта? С наилучшими пожеланиями - person Derk; 04.04.2018
comment
если у вас есть ошибка в вашем коде или сценарии, она будет отображаться на панелях, как показано на скриншотах. - person thatjeffsmith; 04.04.2018
comment
Но так это работает в версии 17.2.0.188. В 1.5.5 я вижу всплывающее окно после нажатия на кнопку. Посмотрите здесь: zapodaj.net/940fb94cc928c.png.html - person Derk; 04.04.2018
comment
@Derk да, это работало так в 1.5.5, но не больше и не в течение долгого времени - см. мою заметку о регистрации ваших исключений в ТАБЛИЦАХ. если вы этого не сделаете, вы пропустите проблемы, независимо от того, есть у вас всплывающие окна или нет. - person thatjeffsmith; 04.04.2018
comment
Этот способ мне знаком. Я тоже использую Toad, и всплывающее окно генерируется. Спасибо за помощь. - person Derk; 04.04.2018
comment
@ Дерк извини, но по крайней мере у тебя есть ответ. - person thatjeffsmith; 04.04.2018