utl_dbws.ANYDATA_LIST类型初始化问题

同事希望通过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;

你可能感兴趣的:(utl_dbws.ANYDATA_LIST类型初始化问题)