我需要有一个程序包,该程序接受varchar2(255)类型表的参数。
包装规格:
type charArray is table of varchar2(255) index by binary_integer;
包装体:
PROCEDURE call_me (p1 IN charArray, p2 IN VARCHAR2) IS ...
我尝试使用以下方法调用此过程:
declare
type t_type is table of varchar2(255) index by binary_integer;
l_array t_type;
begin
l_array := ('131240');
pkg._name.call_me (l_array, 'name');
end;
我收到此错误:
PLS-00306:“ call_me”调用中参数的数量或类型错误
我在做什么错?
答案 0 :(得分:3)
您已经用相同的定义声明了两种类型,但这并不能使它们兼容。为了将表传递到包中,必须使用包中声明的类型:
declare
l_array pkg_name.charArray;
begin
l_array(1) := '131240';
pkg_name.call_me (l_array, 'name');
end;