CREATE OR REPLACE package pk_wt
is
type mytype is ref cursor;--定义一个变量
procedure p_wt(mycs out mytype); --声明一个过程
end;
CREATE OR REPLACE package BODY pk_wt
is
procedure p_wt(mycs out mytype) --定义一个存储过程
is
begin --begin end,pascal 风格的语句
open mycs for select a,b from abc; --得到一个select 的语句结果,用一个游标来定位,类似一个指针
end p_wt;
end pk_wt;
当我看见这两段sql,突然恍然大悟,这不正是c++面向对象的结构吗?如同在c++中,第一段在class中声明成员函数和变量。第二段定义成员变量的函数体。查了一下资料,发现Oracle的pl/sql正是面向对象的。
以下是在c#中使用前面的过程:
OracleCommand cmd = new OracleCommand("pk_wt.p_wt", conn);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter p1 = new OracleParameter("mycs", OracleType.Cursor);
p1.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(p1);
OracleDataReader da = cmd.ExecuteReader();
List<string> st = new List<string>();
while (da.Read())
{
st.Add(da[1].ToString());
}
da.Close();
分享到:
相关推荐
### Oracle存储过程返回结果集详解 #### 一、概述 在Oracle数据库中,存储过程是一种重要的编程组件,它能够执行一系列SQL语句并处理复杂的业务逻辑。存储过程的一个常见应用场景是返回结果集(Record Set),这有...
在 Delphi 中调用 Oracle 的存储过程返回数据集需要遵循一定的规则和格式,包括创建 Oracle 包和存储过程、使用 AdoConnection 和 AdoDataSet 组件连接到 Oracle 数据库、调用存储过程并返回数据集等步骤。
本文介绍了Java调用Oracle存储过程返回结果集Record和Cursor的相关知识点,包括创建Type、PACKAGE和PROCEDURE,Java代码中调用存储过程,并获取结果集。这些知识点对深入了解Oracle存储过程和Java调用Oracle存储过程...
在Oracle数据库中,返回多个结果集是一个常见的需求,特别是在处理复杂的查询或存储过程时。一个结果集通常对应于SQL查询的执行结果,但有时我们可能需要在一个操作中获取并处理多个独立的结果集。这就涉及到了...
首先,需要在Oracle中定义返回记录集的存储过程,然后使用OLE DB和ADO来调用该存储过程。 7. 程序包的定义:在Oracle中,程序包是将数据类型、存储过程、函数、变量和常量封装在一起的对象。包在结构上分为包头和包...
- `ResultSet`对象`rs`可以像处理普通的SQL查询结果一样进行遍历,读取存储过程返回的数据。 注意,处理返回的Cursor时,必须确保存储过程已经正确地打开并返回了游标,否则在Java端无法正常获取数据。此外,为了...
本篇文档主要介绍了如何通过存储过程返回结果集,分为两种方式:过程返回记录集和函数返回记录集。 1. 过程返回记录集: 在Oracle中,可以通过OUT参数来让存储过程返回一个结果集。这里使用了REF CURSOR类型,它是...
总的来说,使用VB调用Oracle程序包内的存储过程返回结果集是一个常见的任务,需要熟悉数据库操作、存储过程以及VB的数据库访问技术。理解这个过程对于开发高效、可靠的数据库驱动的应用至关重要。
在Oracle数据库中,游标是一种重要的工具,用于处理和返回多行结果集。在这个例子中,我们将探讨如何通过存储过程和游标返回结果集。游标允许我们在处理数据时逐行移动,这对于需要循环访问数据库记录的情况非常有用...
Oracle数据库允许存储过程返回记录集,这在处理复杂业务逻辑时非常有用,特别是当你需要从数据库获取一组数据并在应用程序中进一步处理时。本篇将详细解释如何使用.NET框架调用Oracle存储过程来获取记录集。 首先,...
Oracle存储过程可以返回多个结果集,因此我们需要使用`CallableStatement`而不是`PreparedStatement`。调用存储过程的语法是`{call procedure_name(参数列表)}`。例如: ```java CallableStatement cs = connection....
本篇文章将深入探讨Oracle过程返回数据集的几种方法,特别是通过REF CURSOR的使用。 1. **REF CURSOR介绍** REF CURSOR是一种特殊的变量类型,它可以引用一个打开的游标。它允许过程动态地构建SQL查询,并将结果集...
在Oracle数据库中,存储过程返回数据集的功能可以通过定义游标(RefCursor)来实现。与SQL Server相比,Oracle在这一方面需要额外的步骤来进行配置和处理,但通过正确的设置仍然能够达到目的。本文将详细介绍如何...
### Oracle 分页查询并返回总记录数据存储过程 在数据库应用开发中,为了提高用户体验以及减少服务器负担,分页查询成为了一种常见的技术手段。Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种...
根据提供的信息,我们可以详细解析如何在Oracle数据库中创建一个包,并在该包内定义一个存储过程来实现分页功能。这种做法通常用于处理大量数据时,以提高查询效率和用户体验。 ### Oracle包与存储过程 #### 一、...
例如,在`35_存储过程和函数.ppt`中,可能详细介绍了如何定义、调用和管理存储过程。 接着,我们讨论“函数”。函数与存储过程类似,也是预编译的代码块,但它们的主要区别在于函数必须返回一个值,而存储过程可能...
在Java编程中,有时我们需要调用Oracle数据库的存储过程,特别是当存储过程返回一个游标(Cursor)时,这种情况在处理大量数据或者分页查询时很常见。游标允许我们逐行处理结果集,而无需一次性加载所有数据,这对于...
在《ORACLE存储过程,函数,包,游标》这个文本文件中,可能包含了关于如何定义、调用和管理这些对象的示例代码和实践指导。通过阅读和理解这个文件,开发者能够深入了解Oracle数据库的动态编程能力,提升其在数据库...
MyBatis 调用 Oracle 存储过程返回复杂结果集 MyBatis 是一种基于 Java 的持久层框架,提供了对数据库的交互操作。然而,在 MyBatis 的官方文档中,并没有对如何调用 Oracle 存储过程的介绍,导致了网络上的资料...
4. **处理结果集**:遍历`ResultSet`,获取存储过程返回的集合数据: ```java while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); // ... 其他字段 System.out.println("ID: ...