任何人都知道为什么我的例外不起作用?当我测试sql时,出现的唯一例外是其他人。
这是我的第一个存储过程,我希望它使用参数值插入新学生。
create or replace PROCEDURE ADD_STUDENT_TO_DB (pSTUid number, pSTUname varchar2) AS
Out_Of_Range Exception;
BEGIN
IF pSTUid <=1 AND pSTUid >=499 THEN
RAISE Out_Of_Range;
END IF;
INSERT INTO STUDENT (STUid, STUname)
VALUES (pSTUid, pSTUname);
EXCEPTION
WHEN DUP_VAL_ON_iNDEX THEN
dbms_output.put_line('-20010. Duplicate student ID');
WHEN Out_Of_Range THEN
dbms_output.put_line('-20002. student ID out of range');
WHEN OTHERS THEN
dbms_output.put_line('-20000. Error');
END;
这是我的第二个存储过程,我希望这可以调用我的第一个存储过程。
create or replace PROCEDURE ADD_STUDENT_VIASQLDEV (pSTUid number, pSTUname varchar2) AS
BEGIN
INSERT INTO STUDENT (STUid, STUname)
VALUES (pSTUid, pSTUname);
dbms_output.put_line('--------------------------------------------');
dbms_output.put_line('Adding student ID: ' || pSTUid || ' Name: ' || pSTUname);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('-20000. Error');
END;
答案 0 :(得分:0)
应该存在IF pSTUid <=1 OR pSTUid >=499 THEN
而不是您对out_of_range的声明