Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

PL/SQL:Erro PLS-00306:número errado ou tipos de argumentos na chamada acionados para tabela de números


O motivo pelo qual você está enfrentando o PLS-00306 erro é incompatibilidade de NUMLIST tipo de coleção, definido na especificação do pacote e NUMLIST tipo de coleção definido no bloco PL/SQL anônimo. Embora as definições desses dois tipos de coleção sejam as mesmas, elas não são compatíveis. No seu bloco PL/SQL anônimo, você deve declarar e depois passar para o GETSERVICES_API procedimento uma variável de PKGCOMSUPPORT_SERVICE.NUMLIST tipo de dados.
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