`

How to Return Result-Set via PLSQL Table or REF Cursor

阅读更多
How to Return Result-Set via PLSQL Table or REF Cursor
如何通过PLSQL 表 或者 REF Cursor 返回结果集

create or replace package test_pack is
  type mycur is ref cursor;
  type myrectype is record (loc varchar2(100));
  type mytabtype is table of myrectype index by binary_integer;
end;
/

/* Procedure to Return resultset using REF Cursor */
create or replace procedure return_many_rows_ref(rset in out test_pack.mycur)
is
begin
  open rset for select * from dept;
end;
/

/* Procedure to Return resultset using PL/SQL table of Records */
create or replace procedure return_many_rows_tabrec(rset in out test_pack.mytabtype)
is
  cursor dept_cur is select loc from dept;
  ctr number := 0;
begin
  for x in dept_cur loop
     rset(ctr).loc := x.loc;
     ctr := ctr + 1;
  end loop;
end;
/

/* PL/SQL block to test procedure that returns many rows using REF cursor */

set serveroutput on;

declare
  result1 test_pack.mycur;
  dep_rec dept%rowtype;
begin
  return_many_rows_ref(result1);
  loop
     fetch result1 into dept_rec;
     exit when result1%notfound;
     dbms_output.put_line(dep_rec.deptno);
  end loop;
  close result1;
end;
/

/* PL/SQL block to test procedure that returns many rows using PL/SQL table of records*/

declare
  result2 test_pack.mytabtype;
begin
  return_many_rows_tabrec(result2);
  for x in result2.first..result2.last loop
    dbms_output.put_line(result2(x).loc);
  end loop;
end;
/
分享到:
评论

相关推荐

    PLSQL连接远程数据库问题

    PLSQL连接远程数据库问题 无法连接报错

    plsql_svn插件

    下面简单介绍下PLSQL developer工具的SVN版本控制 1, 下载pl/sql-svn插件。 2, 关闭你打开的所有pl/sql窗口。  3,将插件里的SVN_Plugin.dll文件复制到PLSQL DeveloperPlugIns目录下。  4,重新打开pl/sql,...

    KingbaseESV8R6产品手册-SQL和PLSQL.pdf

    KingbaseESV8R6产品手册-SQL和PLSQL

    plsql.zip_PLSQL Developer_cursor

    CREATE OR REPLACE FUNCTION get_employees(dept_id IN NUMBER) RETURN SYS_REFCURSOR AS v_query VARCHAR2(200); v_refcursor SYS_REFCURSOR; BEGIN v_query := 'SELECT * FROM employees WHERE department_id =...

    win7-64-plsql连接oracle插件及教程

    本文将深入探讨如何在Win7-64位环境下使用PL/SQL Developer(简称PLSQL)这款强大的Oracle数据库管理工具,以及安装必要的Oracle Instant Client组件来实现这一目标。 首先,PL/SQL Developer是由Allround ...

    plsql-vf-dbfodbc.rar

    标题 "plsql-vf-dbfodbc.rar" 暗示了这个压缩包与PL/SQL(Oracle数据库的编程环境)以及Visual FoxPro(VFP)数据库系统有关,特别是涉及到在PL/SQL环境中通过ODBC(Open Database Connectivity)驱动程序访问DBF...

    instantclient-11-2,plsql连接,缺少oci.dll

    64位windows系统上安装了Oracle 11g r2后,安装PLSQL Developer客户端出现如下图情况,连接数据库时,无法选择用户角色,强制输入用户信息及连接信息后会弹出错误信息,根据信息可知PLSQL Developer并不支持64位系统...

    plsql-web.rar--plsql-web.rar

    Web版的PLSQL工具,如"plsql-web.rar",旨在提供一种通过Web界面来远程访问和管理Oracle数据库的解决方案。 "plsql-web.rar"可能是一个包含PLSQL Web客户端的压缩文件,允许用户通过Web浏览器进行数据库开发、查询...

    PLSQL简易教程学过以后plsql不愁

    "PLSQL简易教程学过以后plsql不愁" PLSQL 是 ORACLE 对标准数据库语言的扩展,ORACLE 公司已经将 PLSQL 整合到 ORACLE 服务器和其他工具中了,近几年中更多的开发人员和 DBA 开始使用 PLSQL。本文将讲述 PLSQL 基础...

    plsql资料--plsql资料

    PLSQL,全称为Procedural Language/SQL,是Oracle数据库提供的一个编程环境,结合了SQL(结构化查询语言)和过程式编程语言的特性。它主要用于编写与Oracle数据库交互的应用程序,尤其是数据库的后台处理部分。这个...

    报错ORA01804解决方法.txt

    使用PL/SQL登录ORACLE数据 报错,error while trying to retrieve text for error ORA-01804,的解决方法,操作步骤,在windows server 2008R2 64位,oracle 12C,PLSQL Developer 12 64位,以上使用环境正常,

    plsql-SVN插件

    plsql的svn插件使用办法压缩包内有,也可以看我的博客进行安装。

    Introduction to Oracle - Sql Plsql (Vol2)

    本文档“Introduction to Oracle - Sql Plsql (Vol2)”介绍了Oracle数据库的核心组件:SQL和PL/SQL的基础知识及其高级应用。作为Oracle系列教程的一部分,它适用于那些已经对Oracle环境有所了解并希望进一步深入学习...

    oracle精简客户端-免安装-快速配置plsql等连接_补充-不要下载看描述

    CSDN对上传资源无法修改 在精简客户端中,环境变量还应添加 NLS_LANG --> SIMPLIFIED CHINESE_CHINA.ZHS16GBK ( 防止乱码 )

    oracle笔记二--plsql 编程.txt

    SQL> GRANT ALL ON plan_table TO PUBLIC; ``` - **授予权限**:还需要为所有用户授予PL/SQL跟踪权限: ```sql SQL> GRANT plustrace TO PUBLIC; ``` - **自动跟踪命令**:可以使用以下命令开启或关闭自动...

    sonar-plsql-plugin-2.9.1.1051

    sonar-plsql-plugin-2.9.1.1051jar包,支持sonarqube对sql的扫描

    解决Oracle11g,PL/SQL连接报错问题

    启动PLSQL Developer,不登录点取消进入PLSQL Developer,Tools->>Preferences: Oracle Home:OraDb11g_home1(发现这里似乎可以随便写,我填的是安装的Oracle 11g 64位的) OCI Library:D:\instantclient_11_2\...

    PLSQL-中文手冊7

    - 例如:`CURSOR my_cursor IS SELECT * FROM my_table WHERE condition;` 4. **异常处理**: - 使用`EXCEPTION`关键字处理程序运行时可能出现的错误。 - `WHEN OTHERS THEN`可以捕获所有未明确定义的异常。 5....

Global site tag (gtag.js) - Google Analytics