PL / SQL 'de kod çalıştırırken alınan exceptionları aşağıdaki şekilde handle edebiliriz:
declare v1 tparams.tvalue1%type; v2 tparams.tvalue1%type; v3 tparams.tvalue1%type; begin select tvalue1 into v1 from tparams t where t.tparamname = 'ABC'; select tvalue1 into v2 from tparams t where t.tparamname = 'PRS'; select tvalue1 into v3 from tparams t where t.tparamname = 'XYZ'; exception when no_data_found then dbms_output.put_line(SQLERRM); end;
Program Çıktısı:
ORA-01403: no data found
Oracle 10g ile birlikte gelen "dbms_utility.format_error_backtrace" fonksiyonunu kullanarak da exception'ın geriye dönük olarak hangi satırlarda alındığını görebiliriz:
declare x number; begin x := 1 / 0; dbms_output.put_line(x); exception when others then dbms_output.put_line(SQLERRM); dbms_output.put_line(dbms_utility.format_error_backtrace); end;
Program Çıktısı:
ORA-01476: divisor is equal to zero
ORA-06512: at line 4
Konu ile ilgili faydalı linkler:
PL/SQL Exception
Exception Handling
Using DBMS_UTILITY
tracking exceptions in oracle 10g
ali kemal taşçı
Hiç yorum yok:
Yorum Gönder