Oracle hataları

ORA-06502: PL/SQL: numeric or value error

PL/SQL sayısal ya da değer hatası

ORA-06502: PL/SQL: numeric or value error

Bir PL/SQL ataması ya da dönüşümü başarısız oldu: çoğunlukla bir metin, değişkenin tutabileceğinden uzundur (character string buffer too small), bir metin sayıya çevrilemez ya da NOT NULL bir değişkene NULL atanmıştır.

Ne anlama gelir?

ORA-06502, PL/SQL’in sığmayan değerler için genel hatasıdır. İki noktadan sonraki metin türünü söyler: character string buffer too small, character to number conversion error, number precision too large ya da NULL index table key value. Ardından gelen ORA-06512 satırları kodun tam satırını gösterir.

Yaygın nedenler

Nasıl çözülür?

  1. İfadeyi bulmak için ORA-06512 satır numaralarını okuyun.
  2. Değişkenleri kolon tipinden tanımlayın: l_ad employees.name%TYPE.
  3. Çok baytlı karakter içerebilecek metinler için karakter uzunluğu kullanın: VARCHAR2(100 CHAR).
  4. Girdiyi atamadan önce doğrulayın ya da dönüştürün.

Örnek

Değişkeni kolondan boyutlandırın:

DECLARE
  l_name employees.last_name%TYPE;   -- VARCHAR2(20) değil
BEGIN
  SELECT last_name INTO l_name FROM employees WHERE id = 1;
END;

SQLlightspeed’de

Bir ifade hata verdiğinde SQLlightspeed’in hata paneli, hata kodunu sade bir Türkçe açıklama ve ne yapmanız gerektiğine dair bir öneriyle; Oracle’ın kendi mesajı ve Oracle dokümantasyonuna bağlantıyla birlikte gösterir — bu hata ve sık görülen onlarca başka hata için.

İlgili hatalar

ORA-12899ORA-01722ORA-01403 Tüm Oracle hataları →

Oracle dokümantasyonu: ORA-06502. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.