Oracle
 sql >> Base de données >  >> RDS >> Oracle

PL/SQL :Erreur PLS-00306 :nombre ou types d'arguments erronés dans l'appel à déclenché pour la table des nombres

La raison pour laquelle vous êtes confronté au PLS-00306 l'erreur est une incompatibilité de NUMLIST type de collection, défini dans la spécification du package et NUMLIST type de collection défini dans le bloc PL/SQL anonyme. Même si les définitions de ces deux types de collection sont les mêmes, elles ne sont pas compatibles. Dans votre bloc PL/SQL anonyme, vous devez déclarer puis passer dans le GETSERVICES_API procédure une variable de PKGCOMSUPPORT_SERVICE.NUMLIST type de données.

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