ORACLE数据库返回数据集(游标)

<< Click to Display Table of Contents >>

当前位置:  创建数据集 > SQL数据集 > 使用存储过程创建SQL数据集 

ORACLE数据库返回数据集(游标)

Previous pageReturn to chapter overviewNext page

对于 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})},情况如下图:

clip0403

 

同时要对参数进行配置,包括参数的类型,方向和默认值等,配置如下图:

clip0404

 

刷新出来的数据如下图:

clip0405

 

 

如果在存储过程中定义了多个游标结果,可以通过配置参数_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}),情况如下图:

ret_cursor1

 

同时要对参数进行配置,默认返回第一个游标的结果,如果希望返回游标2的结果有,需要配置参数包括参数_RETURN_SP_LOCATION_为整数2,ret_cursor1和ret_cursor2类型为cursor,方向为out,配置如下图:

ret_cursor2

 

刷新出来的数据为第二个游标coffee_chain表里的数据,数据如下图。

ret_cursor3