Вывести ошибку через DBMS_OUTPUT.PUT_LINE?

vasekK
Дата: 10.03.2011 07:29:35
Toad. Oracle 10. Делаю инсерт:

INSERT INTO SAMS_GOALS.STUDENT_SGSTUD (ID,
                                             GUID,
                                             FIRST_NAME,
                                             MIDDLE_NAME,
                                             LAST_NAME,
                                             ALTERNATE_ID,
                                             NICKNAME,
                                             SCHOOL,
                                             CREATE_DATE,
                                             UPDATE_DATE,
                                             CREATE_USER,
                                             UPDATE_USER)
      VALUES (SEQ_SGSTUD_ID.NEXTVAL,
              '284',
              'FirstName',
              'P_MIDDLE_NAME',
              'JOHN',
              'P_ALTERNATEID',
              'P_NICKNAME',
              'P_SCHOOL',
              SYSDATE,
              SYSDATE,
              USER,
              USER);

Выпадает в другом окне ошибка:
Lookup Error
ORA-00001: unique constraint (SAMS_GOALS.SYS_C0058756) violated

Вывести ошибку через DBMS_OUTPUT.PUT_LINE?
Серафимный Шестикрыл
Дата: 10.03.2011 07:42:12
vasekK
Вывести ошибку через DBMS_OUTPUT.PUT_LINE?


Ключевой вопрос - а нафига ?
Что не нравится ?
Shtock
Дата: 10.03.2011 12:19:49
Ну если уж хочется сделать обработку исключения а-ля

begin
   ваш инсерт
exception
 when dup_val_on_index then dbms_output(что Вы хотитет вывести)
 when others then raise;
end;

Серафимный Шестикрыл
Дата: 10.03.2011 12:36:58
Shtock
Ну если уж хочется сделать обработку исключения а-ля

begin
   ваш инсерт
exception
 when dup_val_on_index then dbms_output(что Вы хотитет вывести)
 when others then raise;
end;



В чем тайный смысл сего ? :-)
Shtock
Дата: 10.03.2011 14:56:42
Ну смысла то понятно дело нет, но если автору хочется...

Может быть у него какие-нибудь компоненты доступа к БД которое показывают что-либо из dbms_output и он хочет через него выводить человеческие текст исключения, а не например через raise_application_error.
Shtock
Дата: 10.03.2011 14:58:33
а если Вы про жевтенькое, то автор указал явно что хочет вывести через dbms_output ошибку и указал ее код "Lookup Error
ORA-00001: unique constraint (SAMS_GOALS.SYS_C0058756) violated" т.е. другие он не хочет видеть через dbms_output. По-крайнеё мере такое мое имхо. В любом случае думать за автора нам обоим не надо. Пусть творит.
-2-
Дата: 10.03.2011 15:07:00
Shtock
Может быть у него какие-нибудь компоненты доступа к БД...
Вообще вопрос не о том, КАК вывести ошибку через dbms_output, а НУЖНО ЛИ ее выводить сюда на форум в виде текста, а не картинки.
автор
Toad. Oracle 10. Делаю инсерт:
...
Выпадает в другом окне ошибка
...
Вывести ошибку через DBMS_OUTPUT.PUT_LINE?
Серафимный Шестикрыл
Дата: 10.03.2011 15:12:24
Shtock
а если Вы про жевтенькое


Про оно, родимое.

Shtock
т.е. другие он не хочет видеть через dbms_output. По-крайнеё мере такое мое имхо. В любом случае думать за автора нам обоим не надо. Пусть творит.


Скажите, а как вы полагаете - если этой желтенькой конструкции не будет, то что увидит автор в случае исключения,
ну, скажем, NO_DATA_FOUND ?

** весь буквально замер в ожидании **
Shtock
Дата: 10.03.2011 15:21:42
:). Каюсь :)