我需要有程序的封装接受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的论点
我究竟做错了什么?
你必须使用相同的定义中声明两种类型,但是这并不能让他们兼容。为了将表传递到包,您必须使用包装声明的类型:
declare
l_array pkg_name.charArray;
begin
l_array(1) := '131240';
pkg_name.call_me (l_array, 'name');
end;