如何从Java类中将out参数作为表类型调用过程 [英] How to call procedure with out parameter as table type from a Java class
本文介绍了如何从Java类中将out参数作为表类型调用过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从Java代码中的软件包ult_pkg
中调用此过程get_data_Q1
,并显示输出:
I want to call this procedure get_data_Q1
in the package ult_pkg
from Java code and display the output:
CREATE OR REPLACE PACKAGE ult_pkg
AS
TYPE t_all_record is record (
x_object_type_id number,
x_object_name varchar2(100),
x_object_id varchar2(70),
x_audit_timestamp timestamp(6),
x_payload clob
);
--table type to hold table data after querying
type tt_all_tab is table of t_all_record index by binary_integer;
--declaration pocedures
procedure get_data_Q1(x_object_id in varchar2 , x_all_type out tt_all_tab );
end ult_pkg;
/
--body of 'ult_pkg' package
create or replace package body ult_pkg
AS
--procedure taking 'object_id' as input parameter and gives out table of 't_all_record' type
procedure get_data_Q1(x_object_id in varchar2 , x_all_type out tt_all_tab )
AS
i number:=0;
begin
for r in
(
SELECT
O.object_type_id,O.object_name,O.object_id,A.audit_timestamp,P.payload
FROM
APPLICATION APP, EXCEPTIONS E,MASTER_AUDIT A,MODULE_TYPE M,OBJECT_TYPE O,PAYLOAD P
WHERE
( A.MODULE_TYPE_ID = M.MODULE_TYPE_ID ) AND ( M.APPLICATION_ID = APP.APPLICATION_ID ) AND ( A.OBJECT_TYPE_ID = O.OBJECT_TYPE_ID ) AND ( O.OBJECT_ID = x_object_id )
)
-- loop to asign the data from cursor 'r' to carasponding table type columns
loop
x_all_type(i).x_object_type_id:=r.object_type_id;
x_all_type(i).x_object_name:=r.object_name;
x_all_type(i).x_object_id:=r.object_id;
x_all_type(i).x_audit_timestamp:=r.audit_timestamp;
x_all_type(i).x_payload:=r.payload;
i:=i+1;
end loop;
end get_data_Q1;
end ult_pkg;
/
推荐答案
查看全文