【发布时间】:2016-04-20 02:02:25
【问题描述】:
我有下一个存储过程:
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 引发的错误,所以这很好, 但是另外两个是什么?!
谢谢!
【问题讨论】:
-
另外两个不是错误。 ORA 06512 只是错误堆栈中与顶级异常相关的消息的标识符。您只需要处理堆栈顶部的实际错误。
标签: php ajax oracle xampp oracle10g