當前位置:成語大全網 - 新華字典 - Oracle怎麽捕獲ora-00942的異常

Oracle怎麽捕獲ora-00942的異常

不知道妳想在什麽環境下捕獲,不知道妳說的SQL是怎麽捕獲,或者妳說的是腳本?

如果是在存儲過程中捕獲

有兩個思路吧,

1、直接使用普通的異常處理,獲取異常的代碼,匹配是否為00942,然後就捕獲到這個異常。

2、自定義異常處理,使用數據字典,首先查詢數據字典中是否存在這表,如果不存在,就產生壹個自定義的異常,在這個異常裏妳做處理。

------------------------------------------------------------------------------------

declare

myexception exception;

--表個數

v_num integer :=0;

begin

--查詢表名為MY_USER表個數

SELECT count(*) into v_num FROM tabs WHERE table_name = 'MY_USER'

if v_num=0 then

raise myexception;

end if;

exception

when myexception then

raise_application_error(20001,'my exception happens');

when others then

raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);

end

----------------------------------------------------------------------------------------

偽代碼,妳可以嵌到妳的存儲過程中去使用。