Get Dataset from Stored Procedure in Oracle

Stored Procedure (SP) can return data through one variable. We need to get dataset some times. Only one way to get the target is return cursor which can store dataset in SP.

A cursor is a mechanism by which you can assign a name to a “Select statement” and manipulate the information with that SQL statement.

l  Following is an example.

CREATE OR REPLACEPROCEDURE SP_NAME(

                                             , TEST1 OUT sys_refcursor //refers to a cursor that can be pass cursors from and to a SP

                                )

AS

v_created VARCHAR2(100);

 

BEGIN

OPEN TEST1 FOR SELECT created  FROM TABLE_NAME;

   

LOOP

FETCH TEST1 INTO v_created;

EXIT WHEN TEST1%NOTFOUND;

dbms_output.put_line(v_created);

END LOOP;

CLOSE TEST1;

 

END SP_TEMPLATE;

/

l  Using the SQL to execute the SP

DECLARE

  TEST1 sys_refcursor;

BEGIN

  SYSTEM.KTEST (TEST1 );

END;

 

l  Use the SQL1 to initial a sys_refcursor, also a string can be used to initial a sys_refcursor as SQL2

SQL1:

OPENTEST1 FOR SELECT created  FROM TABLE_NAME;

 

SQL2:

         initialStr VARCHAR2(100);

         initialStr := 'SELECT created

                FROM siebel.s_srv_req';

OPENTEST1 FOR initialStr;

Note: If you want to call the SP with cursor with JAVA, remove the code after LOOP clause. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值