8.9 Hata ayıklama

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 8. Yordamsal dil (PSQL) >

8.9 Hata ayıklama

Bir /ivedi oturumu kendi deyimlerinin PSQL kodunu — saklı yordam, fonksiyon, paket gövdesi, tetikleyici, EXECUTE BLOCK, betik — durma noktasında durdurabilir, adım adım yürütebilir, çağrı yığınını ve değişkenleri okuyabilir, istisnada durabilir. Araçlar: msql (\debug, \break, \breaks, \unbreak), yönetim arayüzünün SQL sayfası (Hata ayıkla) ve protokolün debug komutu (ajan protokol belgesi §7.10). Kapı: ajanın debugMode anahtarı ve login'in MASTER'daki DEBUGGER rolü (grant "DEBUGGER" to <login>; SYSDBA muaf). Kurallar:

  • Durak yalnız PSQL deyim sınırındadır: ifade içinde ve SELECT'in satır döngüsünde durulmaz; EXECUTE STATEMENT metninin deyimleri de durak değildir (satırları hiçbir kaynakta yoktur).
  • Satırlar nesnenin IVD$SOURCE metnine göre 1 tabanlıdır (CREATE'in ilk belirteci satır 1; hata yığın izindeki methodline); betik ve EXECUTE BLOCK'ta gönderilen metne göre mutlak. Nesne anahtarı ŞEMA.AD, paket üyesi ŞEMA.PAKET.AD, tetikleyici ŞEMA.TETİKLEYİCİ. Satırlar özgün dosyaya göre sayılır: gövde içinde çok satırlı (\ devamlı) bir makro açılımı IVD$SOURCE'u uzatır ve sonraki deyimlerin satırı kaynak metne göre bir kayar; gövde içinde #include ile gelen deyimlere durma noktası konamaz.
  • FOR SELECT ... AS CURSOR c döngüsünün o anki satırı değişkenler arasında C.<kolon> adlarıyla listelenir; evaluate c.kolon yazımını oradan çözer.
  • Durma noktası koşul alabilir (PSQL ifadesi; duran deyimin bağlamında TRUE ise ya da değerlendirilemezse durulur); evaluate ad ya da PSQL ifadesi derler ve çerçevenin bağlamında değerler (yan etkili çağrılar dahil).
  • İstisnada durma: all (ilk fırsat, WHEN işleyicisinden önce) ya da uncaught (hiçbir blok yakalamayacaksa).
  • Durak boyunca işlem, satır kilitleri ve depo bağlantısı açık kalır; deyim süre sınırı askıdadır; bağlantı koparsa deyim sonlandırılır. QUERY_CANCELED ve DEBUG_TERMINATED WHEN ANY ile yakalanamaz.
  • EXECUTION STORAGE veritabanında depoya devredilen yordam ve tetikleyiciler motorda çalışmadığından ayıklanamaz.