Oracle DB получает странные ошибки

у меня есть следующая хранимая процедура:

create or replace procedure generate_tables_for_project
as
begin
execute immediate 'create table farmers (email nvarchar2(30) PRIMARY KEY, fname nvarchar2(30), lname nvarchar2(30), password nvarchar2(30),  farmname nvarchar2(30), region nvarchar2(30), address nvarchar2(30) )';
execute immediate 'create table ISRAELLOCATIONS (region nvarchar2(30), regionID number(2) PRIMARY KEY )';
execute immediate 'create table product (name nvarchar2(30), productID number(2) PRIMARY KEY )';
execute immediate 'create table sub_product (name nvarchar2(30), sub_productID number(3) PRIMARY KEY , product_id number(2) REFERENCES product( productID))'; EXCEPTION
WHEN OTHERS THEN IF SQLCODE = -955
THEN
raise_application_error(-20001, 'Tables Exist!!!');--DBMS_OUTPUT.PUT_LINE( 'Data already exist!!!');
END IF;
end  generate_tables_for_project;

Теперь, когда я активирую процедуру в SQLdeveloper, все в порядке, таблицы будут созданы.
Но я активирую снова, я полагаю, чтобы получить только -955 таблиц существует ошибка.
Но я также получаю ошибки:

ORA-20001: Tables Exist!!!
ORA-06512: at "HR.GENERATE_TABLES_FOR_PROJECT", line 11
ORA-06512: at line 2

Ошибка ORA-20001 — это ошибка, которую я поднял для 0955, так что это нормально,
а какие два других ?!

Спасибо!

0

Решение

Другие две ошибки, потому что есть ошибка на HR.GENERATE_TABLES_FOR_PROJECT процедура и ошибка в строке № 2.

0

Другие решения

Показывает стек ошибок, не означает, что у вас больше ошибок; например:

    SQL> CREATE OR REPLACE PROCEDURE test_error IS
2  BEGIN
3      raise_application_error(-20001, 'Error 1');
4  EXCEPTION
5      WHEN OTHERS THEN
6          raise_application_error(-20002, 'Error 2');
7  END;
8  /

Procedure created.

SQL> exec test_error
BEGIN test_error; END;

*
ERROR at line 1:
ORA-20002: Error 2
ORA-06512: at "SIUCONTAB.TEST_ERROR", line 6
ORA-06512: at line 1
0

По вопросам рекламы [email protected]