Oracle hataları

PLS-00306: wrong number or types of arguments

Çağrıda argüman sayısı ya da tipi yanlış

PLS-00306: wrong number or types of arguments in call to 'NAME'

Çağrı, prosedür ya da fonksiyonun hiçbir sürümüne uymuyor: argüman sayısı yanlış ya da bir tip uymuyor. Çağrıyı güncel tanımla karşılaştırın.

PLS-00306 ne demek?

PL/SQL, bir çağrıyı alt programın bildirilen parametreleriyle, paketteki bütün overload’lar dahil, eşleştirir. Hiçbir sürüm uymazsa adıyla birlikte PLS-00306 verir. Çoğunlukla bir paket tanımı değişip çağıran kod aynı kaldığında görülür.

PLS-00306 neden olur?

PLS-00306 nasıl çözülür?

  1. Güncel parametrelere bakın: DESC paket_adi ya da ALL_ARGUMENTS.
  2. Adlandırılmış gösterim kullanın: okunması kolaydır ve yanlış adları hemen ortaya çıkarır.
  3. Tip uymuyorsa argümanları açıkça dönüştürün.
  4. Çağrının gerçekte hangi şemanın nesnesine gittiğini kontrol edin.

PLS-00306 örneği

LENGTH tek argüman alır:

DECLARE
  x NUMBER;
BEGIN
  x := LENGTH('a', 'b');
END;
/
-- ORA-06550: line 4, column 8:
-- PLS-00306: wrong number or types of arguments in call to 'LENGTH'

Saklı bir birimin güncel imzası:

SELECT argument_name, position, data_type, in_out
  FROM all_arguments
 WHERE package_name = 'PKG_SALARY'
   AND object_name  = 'CALC'
 ORDER BY overload, position;

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

PLS-00201ORA-06550ORA-06502 Tüm Oracle hataları →

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