`
weigang.gao
  • 浏览: 485816 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

获取 oracle 存储过程执行得到的 数据集

 
阅读更多

PL/SQL的存储过程和函数均不直接提供返回数据集的方法,但可以通过返回类型对象来实现返回数据集的效果。具体思路为:

(1)创建包头,在其中声明类型和存储过程,类型应该引用游标;

(2)创建包体,定义存储过程,执行查询,将查询得到的结果集以游标句柄的形式返回。

说明:游标分为显示游标和隐式游标,任何查询结果默认都提供隐式游标,当前方案的重点在于使用游标取得查询结果的句柄,由于游标被引用为类型,通过返回类型,即等效于(并不等同)返回数据集。

 

    具体的案例如下:

--创建包头

create or replace package mypackage1

as

  --声明类型,并引用游标

  type cursorType is ref cursor;

  --声明存储过程,两个输入参数,一个输出参数,输出游标类型数据

  procedure prcGetGlobalAddress

  (

    pos1 integer,                      --分页查询的下限

    pos2  integer,                     --分页查询的上限

    cur in out mypackage1.cursorType     --输出参数,数据类型为引用游标的类型

  );

end mypackage1;

 

--创建包体

create or replace package body mypackage1                  

as  

    --定义存储过程

  procedure prcGetGlobalAddress

  (

    pos1 integer,

    pos2  integer,

    cur in out mypackage1.cursorType

  )

  as

  begin

    --返回得到分页查询结果集的游标句柄

    open cur for 

      select * 

      from (  select a.*,rownum rn 

              from (  select * 

                      from tblsys_globaladdress) a 

              where rownum<=pos2) 

      where rn > =pos1;

  end prcGetGlobalAddress;

  

end mypackage1;

分享到:
评论

相关推荐

    C#中调用oracle存储过程返回数据集

    在C#中调用Oracle存储过程来返回数据集是一个常见的任务,这涉及到ADO.NET库的使用,特别是OracleClient组件。Oracle存储过程是数据库中的预编译SQL代码块,可以接收输入参数,执行复杂的业务逻辑,并返回结果。在C#...

    Oracle存储过程返回结果集

    本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`...

    oracle的存储过程如何返回结果集

    ### Oracle存储过程返回结果集详解 #### 一、概述 在Oracle数据库中,存储过程是一种重要的编程组件,它能够执行一系列SQL语句并处理复杂的业务逻辑。存储过程的一个常见应用场景是返回结果集(Record Set),这有...

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中,需要创建两个Type类型:`myScalarType`和`myTableType...

    oracle 存储过程批量提交

    ### Oracle存储过程批量提交知识点详解 在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保...

    hibernate query调用oracle存储过程

    以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....

    Java获取Oracle存储过程返回的Cursor

    本篇文章将详细介绍如何在Java中通过ODBC6驱动获取Oracle存储过程返回的Cursor。 首先,我们需要创建一个Oracle存储过程,该过程定义了一个名为CURSOR_RESULT的REF CURSOR类型。在提供的示例中,我们有一个名为TEST...

    润乾报表调用oracle存储过程案例说明

    在实际的业务场景中,有时我们需要调用数据库中的存储过程来获取或处理数据,本篇将详细介绍如何在润乾报表中调用Oracle存储过程。 首先,我们要在Oracle数据库中创建存储过程。以下是一个简单的存储过程示例,名为...

    oracle存储过程学习经典

    5. **调用Oracle存储过程**:通过Java或Hibernate等工具调用Oracle存储过程,需要注意参数传递和结果集的处理。 #### 动态SQL与存储过程 在存储过程中执行动态SQL,有两种主要方式: 1. **本地动态SQL**:适用于...

    oracle 存储过程 案例

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重复使用的程序单元。这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握...

    jdbc连接oracle,执行存储过程,带数据库存储过程

    执行Oracle存储过程主要涉及以下几个关键点: 1. 创建CallableStatement对象:使用Connection对象的`prepareCall()`方法创建CallableStatement实例,例如`CallableStatement cs = conn.prepareCall("{call procedure...

    java调用oracle存储过程并得到结果集

    Oracle存储过程可以返回多个结果集,因此我们需要使用`CallableStatement`而不是`PreparedStatement`。调用存储过程的语法是`{call procedure_name(参数列表)}`。例如: ```java CallableStatement cs = connection....

    oracle存储过程加密

    ### Oracle存储过程加密知识点 #### 一、Oracle存储过程与加密背景 在Oracle数据库中,存储过程是一种数据库对象,它可以包含一系列SQL语句和过程化SQL代码,用于执行复杂的业务逻辑。存储过程不仅可以提高应用...

    java调用oracle存储过程实现增删改查

    本文将详细介绍如何在Java中实现对Oracle存储过程的调用,以执行增删改查(CRUD)操作。 首先,确保你已安装了Oracle JDBC驱动(如ojdbc.jar),并将它添加到Java项目的类路径中。Oracle JDBC驱动提供了与Oracle...

    delphi调用Oracle的存储过程

    #### Oracle存储过程创建 首先,我们需要在Oracle数据库中创建一个存储过程。以下是一个示例存储过程`pkg_test`的创建脚本: ```sql CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; ...

    oracle存储过程

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一组SQL语句和PL/SQL块,形成一个可重用的程序单元。这种程序单元可以在需要时被调用执行,提高了代码的组织性和效率。Oracle存储过程是...

    Oracle存储过程、游标、函数的详解

    通过以上对Oracle存储过程、游标和函数的详细介绍,我们可以看到这些特性为Oracle数据库提供了一种强大而灵活的方式来处理数据。掌握这些技术对于开发高效的应用程序至关重要。在未来的学习和实践中,我们应该不断...

    存储过程中怎么动态执行sql语句

    通过以上两个示例可以看出,在Oracle存储过程中实现动态SQL语句的关键在于利用`EXECUTE IMMEDIATE`动态执行SQL语句以及通过创建包的方式来实现更为复杂的动态数据处理逻辑。这两种方法不仅提高了代码的灵活性,还...

    oracle 存储过程的基本语法

    Oracle存储过程是一种预编译的SQL脚本集合,它可以包含复杂的控制流逻辑、数据处理操作等,并且能够被其他应用程序或用户通过简单的调用来执行。使用存储过程可以提高数据库应用的性能和安全性,同时简化应用程序...

    Oracle存储过程游标详解

    "Oracle存储过程游标详解" Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步...

Global site tag (gtag.js) - Google Analytics