Lý do tại sao bạn gặp phải PLS-00306
lỗi là sự không tương thích của NUMLIST
loại tập hợp, được xác định trong đặc tả gói và NUMLIST
loại tập hợp được xác định trong khối PL / SQL ẩn danh. Mặc dù định nghĩa của hai loại tập hợp đó giống nhau, nhưng chúng không tương thích. Trong khối PL / SQL ẩn danh của bạn, bạn phải khai báo và sau đó chuyển vào GETSERVICES_API
thủ tục một biến của PKGCOMSUPPORT_SERVICE.NUMLIST
kiểu dữ liệu.
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