sql >> Databáze >  >> RDS >> Oracle

PL/SQL:Chyba PLS-00306:nesprávný počet nebo typy argumentů ve volání spouštěné pro tabulku čísel

Důvod, proč čelíte PLS-00306 chyba je nekompatibilita NUMLIST typ kolekce, definovaný ve specifikaci balíčku a NUMLIST typ kolekce definovaný v anonymním bloku PL/SQL. I když jsou definice těchto dvou typů kolekcí stejné, nejsou kompatibilní. Ve svém anonymním bloku PL/SQL musíte deklarovat a poté předat do GETSERVICES_API procedura proměnná PKGCOMSUPPORT_SERVICE.NUMLIST datový typ.

create or replace package PKG as
  type t_numlist is table of number index by varchar2(50);
  procedure SomeProc(p_var in pkg.t_numlist);
end;
/

create or replace package body PKG as
  procedure someproc(p_var in pkg.t_numlist) is
  begin
    null;
  end;
end;
/

declare
  type t_numlist is table of number index by varchar2(50);
  l_var t_numlist;
begin
  pkg.someproc(l_var);
end;

ORA-06550: line 5, column 3:
PLS-00306: wrong number or types of arguments in call to 'SOMEPROC'

declare
  --type t_numlist is table of number index by varchar2(50);
  l_var pkg.t_numlist;
begin
  pkg.someproc(l_var);
end;

anonymous block completed


  1. Jak funguje OBJECTPROPERTY() na serveru SQL Server

  2. Připojte se k serveru MySQL přes SSH v PHP

  3. Najít sloupce vrácené funkcí s hodnotou tabulky (příklady T-SQL)

  4. Získání výjimky ORA-00942:tabulka nebo pohled neexistuje - při vkládání do existující tabulky