Sayfalar

pl/sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
pl/sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Ocak 2015 Çarşamba

SQL Notları: SQL - LIKE Sorgularında Yüzde( percent - '%') ve Alt Çizgi ( underscore - '_' ) Kullanımı

1 yorum
SQL sorgularımızda kullandığımız like ifadesinde “_” , “%” karakterlerini wildcard olarak değil de sorgu karakteri olarak kullanmak istediğimizde bunları escape karakteri ile belirtmeliyiz.

Örneğin, aşağıdaki sorguda “TYPES_” ile başlayan tabloları listelemek istediğimizde, aşağıdaki sorgudaki “_” karakteri wildcard karakteri olarak görüleceğinden istediğimiz sonuç döndürülmeyecektir.

select * from all_tables where table_name like 'TYPES_%';



Bunun için sorgumuzu aşağıdaki şekilde değiştirmeliyiz:

select * from all_tables where table_name like 'TYPES\_%' ESCAPE '\';
 Benzer şekilde içinde “intercon_cdr%rowtype” geçen kodları aramak için de aşağıdaki sorgu istediğimiz sonucu döndürmeyecektir:

select * from dba_SOURCE where lower(text) like '%intercon_cdr%rowtype%'; 


Bunun için sorgumuzu aşağıdaki şekilde değiştirmeliyiz:

select * from dba_SOURCE where lower(text) like '%intercon_cdr\%rowtype%' ESCAPE '\';



Kaynaklar:

ali kemal taşçı

27 Temmuz 2012 Cuma

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

0 yorum

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şçı

5 Haziran 2012 Salı

PL / SQL Notları: "htf.escape_sc" ile escape karakter çevrimi

0 yorum

Oracle veritabanında &  <  >  "  gibi karakterleri escape karakterlerle değiştirmek istediğinizde, aşağıdaki fonksiyonu kullanabilirsiniz:

htf.escape_sc(text_includes_chars)


Daha fazla fonks. İçin bkz.

Escape karakterler:
http://ferruh.mavituna.com/opensource/charlist/

ali kemal taşçı