同事希望通过Oracle发布的utl_dbws包调用Webservice,其中在invoke方法的使用时,出现了一些问题,
l_input_params UTL_DBWS.anydata_list;
l_result := QA_SOA.UTL_DBWS.invoke(call_Handle => l_call,
input_Params => l_input_params);
调用Webservice时,invoke方法要求传入参数input_Params,但是实际调用的Webservice中是无参的,因此问题出现在input_Params应该传什么值
传null报错,那么anydata_list类型的参数如何初始化呢?
仔细查看了UTL_DBWS包中anydata_list的定义,
TYPE ANYDATA_LIST IS TABLE OF ANYDATA INDEX BY BINARY_INTEGER;
不难发现,虽然有一个ANYDATA,但anydata_list其实也就是一个Table类型;
Table类型的初始化通常都是以下的形式,
CREATE OR REPLACE PROCEDURE testss
declare
TYPE varray_type IS VARRAY(50) OF VARCHAR2(10); --定义类型
v1 varray_type; --定义未初始化的数组
begin
v1 := varray_type();--数组初始化
end;