<< Click to Display Table of Contents >> ORACLE数据库返回数据集(游标) |
对于 ORACLE 数据库,进入的模式同 DB2,如果在数据库中创建的存储过程的语句是:
CREATE PROCEDURE SCOTT.SP_OUT_JOBS(ret_cursor1 OUT sys_refcursor)
IS
BEGIN
OPEN ret_cursor1 for select * from HR.JOBS;
END;
然后在产品的 sql 语句处写的调用语句是{call "public"."cursor_test"(?{cursor})},情况如下图:
同时要对参数进行配置,包括参数的类型,方向和默认值等,配置如下图:
刷新出来的数据如下图:
如果在存储过程中定义了多个游标结果,可以通过配置参数_RETURN_SP_LOCATION_的大小来指定返回的游标结果。如果在数据库中创建的存储过程的语句是:
CREATE OR REPLACE PROCEDURE AUTOCASE."PRO_QUERY_001"
(
in_lx IN int,
p_cus_01 OUT SYS_REFCURSOR,
p_cus_02 OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN p_cus_01 FOR
Select "year","month","day" From AUTOCASE.STRTNUMBER a Where a."ints" = in_lx;
OPEN p_cus_02 FOR
Select"ID","market","product"From AUTOCASE."coffee_chain" a Where a."ID" = in_lx;
Exception
WHEN OTHERS Then
ROLLBACK;
Return;
End pro_query_001;
然后在产品的 sql 语句处写的调用语句是 call AUTOCASE.pro_query_001(55,?{ret_cursor1},?{ret_cursor2}),情况如下图:
同时要对参数进行配置,默认返回第一个游标的结果,如果希望返回游标2的结果有,需要配置参数包括参数_RETURN_SP_LOCATION_为整数2,ret_cursor1和ret_cursor2类型为cursor,方向为out,配置如下图:
刷新出来的数据为第二个游标coffee_chain表里的数据,数据如下图。