ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 过程里如何返回读取的记录

过程里如何返回读取的记录

原创 Linux操作系统 作者:ZALBB 时间:2019-05-25 22:24:05 0 删除 编辑

过程里如何返回读取的记录?MS的SQL SERVER 能够根据实际需要,返回要读取/处理好的记录。而从V8 开始,ORACLE也有类似的功能。


环境: Windows 2000 server, Oracle 9206+ patch 5

SQL> create or replace package ref_cursor as
2 type ref_cursor is ref cursor;
3 end ref_cursor;
4 /

程序包已创建。

SQL> create or replace procedure return_rows(refcur out ref_cursor.ref_cursor) as
2 begin
3 open refcur for select * from objects;
4 end return_rows;
5 /

过程已创建。

SQL> variable v_var refcursor; -- 为什么这里可以定义成refcursor? 目前还未去了解。
SQL> execute return_rows(:v_var);

PL/SQL 过程已成功完成。

在SQLPLUS里设置autoprint = on 即可自动打印变量值.

SQL> set autoprint on;
SQL> execute return_rows(:v_var);

PL/SQL 过程已成功完成。


OBJECT_NAME
--------------------------------------------------------------------------
CUSTPSIDATA
CUSTPSIDATA2
CUSTPSIDATA3
CUSTPSIDATA4
CUSTPSIDATA5
DT
MYPROC
OBJECTS
PP
PRO_SLEEP
PRO_SQL

OBJECT_NAME
--------------------------------------------------------------------------
REDO_SIZE
SEQ_1
SEQ_2
SLEEP_PRO
STRAGG
T1
T2
TRAN
LINKTONCDB.US.ORACLE.COM

已选择20行。

SQL> set autoprint off;
SQL> execute return_rows(:v_var);

PL/SQL 过程已成功完成。

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1112/viewspace-103703/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-08-15

  • 博文量
    46
  • 访问量
    35156