2015-10-26 89 views
0
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; 
/

我試圖寫一個異常塊,它將驗證用戶輸入的輸入是否是數字。但我無法這樣做。任何人都可以幫助我解決這個問題。在Pl/sql中的異常處理

+0

什麼錯誤,你getting.Maybe它,因爲你是如何寫的DBMS輸出。它應該像這樣寫'dbms_output.put_line('err')'; – brenners1302

回答

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; 
/