Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение Oracle 12c при создании функций/пакетов/процедур с ошибками в тексте / 4 сообщений из 4, страница 1 из 1
16.02.2017, 15:25
    #39405838
ln123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение Oracle 12c при создании функций/пакетов/процедур с ошибками в тексте
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

Выполняю вот такой скрипт
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
begin
  execute immediate ' create or replace procedure test1_a
is
begin
  null
end; ';
raise_application_error(-20000,'Error');
end;



Скрипт выполняется без ошибок т.е. получается, что выполнение прерывается после execute immediate причем без каких либо сообщений об ошибках.

В 11.2 по моему такого не было.
Этот баг как нибудь лечится?
...
Рейтинг: 0 / 0
16.02.2017, 19:21
    #39406106
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение Oracle 12c при создании функций/пакетов/процедур с ошибками в тексте
ln123по моему такого не было.
Этот баг как нибудь лечится?

Сначала протестировать.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Connected to Oracle Database 12c Standard Edition Release 12.1.0.2.0 

SQL> begin
  2    dbms_output.put_line('test0');
  3    execute immediate ' create or replace procedure test1_a
  4  is
  5  begin
  6    null
  7  end; ';
  8  dbms_output.put_line('test1');
  9  raise_application_error(-20000,'Error');
 10  dbms_output.put_line('test2');
 11  end;
 12  /
Warning: PL/SQL procedure successfully completed with compilation errors


Connected to Oracle Database 11g Release 11.2.0.1.0 
SQL> begin
  2    dbms_output.put_line('test0');
  3    execute immediate ' create or replace procedure test1_a
  4  is
  5  begin
  6    null
  7  end; ';
  8  dbms_output.put_line('test1');
  9  raise_application_error(-20000,'Error');
 10  dbms_output.put_line('test2');
 11  end;
 12  /
Warning: PL/SQL procedure successfully completed with compilation errors



А потом читать доку на предмет "баг / не баг".
...
Рейтинг: 0 / 0
16.02.2017, 22:00
    #39406179
ln123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение Oracle 12c при создании функций/пакетов/процедур с ошибками в тексте
Странно, видимо память меня подвела и на 11.2 поведение такое же как и на 12c (exception не отрабатывает, в output выводится только test0)

А на счет баг/не баг прерывание выполнения без выдачи exception это как то на мой взгляд не правильно.
Если такое поведение описано в документации, то подскажите пожалуйста где именно.
...
Рейтинг: 0 / 0
16.02.2017, 22:30
    #39406191
ln123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение Oracle 12c при создании функций/пакетов/процедур с ошибками в тексте
Все разобрался, PL/SQL Developer перехватывает ORA-24344 и в результате создается впечатление что ошибки нет, а сервер без всяких предупреждений прервал выполнение :(
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение Oracle 12c при создании функций/пакетов/процедур с ошибками в тексте / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]