Sayfalar

27 Temmuz 2012 Cuma

PL / SQL Notları: dbms_utility.format_error_backtrace ile geriye dönük hata ayıklama


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: