Pl / sql中的异常处理

时间:2015-10-26 19:36:19

标签: sql plsql plsqldeveloper

declare
x1 number;
y1 number;

begin
x1:=&x1_value;
y1:=&y2_value;
insert into tblnewdata_jk4 values(70,'July',x1,y1);
commit;

exception
when invalid_number then
dbms.output.put_line('err');

end;
/

我曾尝试编写一个异常块,用于验证用户输入的输入是否为数字。但我无法这样做。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

  •   

    首先,dbms.output.put_line('err');应该写成dbms_output.put_line('err')

  •   

    其次,除非您将字符串转换为数字,否则INVALID_NUMBER异常将无效。您应该使用VALUE_ERROR

  •   

    最后,请避免在pl sql中使用&作为绑定变量,它在pl sql中没有意义,因为它是SQL * Plus中的一个特性。有关详细信息,请阅读this

试试这个:

declare
x1 number;
y1 number;

begin
x1:=:x1_value;
y1:=:y2_value;
insert into tblnewdata_jk4 values(70,'July',x1,y1);
commit;

exception
when VALUE_ERROR then
dbms_output.put_line('err');

end;
/