Başlangıç > Database, Forms, Oracle, PL/SQL, Reports > pl/sql de sqlerrm kullanımı

pl/sql de sqlerrm kullanımı


Merhaba,
Pl/sql ortamında ya da Oracle forms ortamında yazdığımız programlarda çoğu zaman Oracle hatası alırız. Doğru bir hata yönetimimiz olmaz ise yani exception satırlarımızda yeterli bilgilendirme yapmaz isek bu hataları bulmak bazı durumlarda çok zor olabilir. Bu gibi durumlarda hatanın meydana geldiği scripti ve hatanın ne olduğu konusundaki detaylı bilgiyi Oracle’ın SQLERRM komutu ile rahatça öğrenebiliriz.Tabi bu durumu daha net anlamak için örneklerimize bir göz atalım.
Örnek olarak bir tabloya insert işlemi yapalım ve bu insert işlemi sırasında alabileceğimiz hataları SQLERRM kullanmadan görelim. Daha sonraki örneğimizde de SQLERRM komutu ile gelen uyarı/hata mesajını inceleyelim.
Aşağıdaki örneğimizde kullandığımız tablonun id bilgisi not null bir alan ve bu alana null veri kayıt etmeye çalıştığımızda scriptin exception satırına düşeceğiz.

DECLARE
BEGIN
  BEGIN
    INSERT INTO sqlerrm_example_table
      (set_id,
       set_aciklama)
    VALUES
      (NULL,
       'SQLERRM Kullanılmayan Insert');
  EXCEPTION
    WHEN OTHERS THEN
      dbms_output.put_line('Kayıt İşleminde Bir Hata Oldu');
  END;
END;

Script içerisinde görüldüğü gibi exception satırından bize aşağıdaki uyarı gelecektir.

Kayıt İşleminde Bir Hata Oldu

Ama bu script yerine aşağıdaki gibi SQLERRM komutunu kullandığımız scriptler hazırladığımızda hatayı bulmamız ve hastanın sebebini öğrenmemiz daha kolay olur.

DECLARE
BEGIN
  BEGIN
    INSERT INTO sqlerrm_example_table
      (set_id,
       set_aciklama)
    VALUES
      (NULL,
       'SQLERRM Kullanılan Insert');
  EXCEPTION
    WHEN OTHERS THEN
      dbms_output.put_line('Kayıt İşleminde Bir Hata Oldu' || chr(13) || SQLERRM);
  END;
END;

Mevcut scriptimizi yukarıdaki gibi güncellediğimizde ise aşağıdaki gibi daha sağlıklı ve hata hakkında daha fazla bilgi veren bir mesaj elde etmiş oluruz.

Kayıt İşleminde Bir Hata Oldu
ORA-01400: ("SQLERRM_EXAMPLE_TABLE"."SET_ID") içine NULL eklenemez

Bu uyarıyı aldığımız zaman insert satırımızdaki NULL olarak gönderdiğimiz id bilgisine değer verdiğimizde sorunsuz kayıt işlemimizi yapabiliriz.

DECLARE
BEGIN
  BEGIN
    INSERT INTO sqlerrm_example_table
      (set_id,
       set_aciklama)
    VALUES
      (1,
       'SQLERRM ve Id Bilgisi Kullanılan Insert');
  EXCEPTION
    WHEN OTHERS THEN
      dbms_output.put_line('Kayıt İşleminde Bir Hata Oldu' || chr(13) || SQLERRM);
  END;
END;

Bu script ile sorunsuz olarak kayıt işlemimi yaptığımıza göre tabloya select atıp kayıt sonucumuzu görebiliriz.

SELECT * FROM sqlerrm_example_table;

İşte bu select sonucunda sorunsuz olarak tabloya kayıt ettiğimiz veri karşımızda.

SET_ID SET_ACIKLAMA
1 SQLERRM ve Id Bilgisi Kullanılan Insert

Bu örneğimizde sadece insert işlemi üzerinde SQLERRM komutunu kullandık. Bu komut yazmış olduğumuz tüm scriptlerimiz için kullanılabilinir. Select , update , insert işlemlerinde de SQLERRM komutu rahatlıkla kullanılabilinir.
Kolay gelsin.

Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: