- 浏览: 595125 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (268)
- ext基础 (72)
- Java基础 (68)
- jquery (14)
- oracle (21)
- sqlserver (7)
- linux (2)
- webserver (1)
- C/C++ (1)
- sql (9)
- IDE (2)
- java 智能卡 (1)
- mysql (6)
- ibatis (2)
- struts2 (3)
- cvs (1)
- 服务器 (1)
- html (11)
- freemarker (4)
- liferay (2)
- jMS (1)
- iphone (1)
- c# (1)
- Android (11)
- wince (6)
- javascript (4)
- ps (1)
- hibernate (1)
- 其他 (3)
最新评论
-
ilyq:
请问,px.gif 在哪里
斜线表头 -
jisang:
没看懂,第一个org.js和最后的js什么关系,可否发我一份完 ...
用ExtJS 实现动态载入树(Load tree) -
JavaStudyEye:
我去,能否搞个正确点的,,,
<#list ...
freemarker 遍历map 对象 -
PangSir:
大爱,简直是大爱!!困扰这么久以来的问题,虽然知道是CSS的问 ...
ExtJs checkbox radiobox 问题 汇总 -
skynet_java:
有demo嘛!邮箱:think_world@foxmail.c ...
消息推送服务需求 - 服务器开发、客户端开发
存储过程返回OUT参数的游标
例子:每个学生求平均值的存储过程。
遇到的问题是带参数游标中的变量名字不要和表中的一样,否则会出问题
###############################################################################################
包中带过程 要自己定义一个type [cur_name] is ref cursor游标,返回的时候就直接 procedure AAA(变量名 out [cur_name])如此申明OUT变量
存储过程 用系统默认的 sys_refcursor 游标类型 定义变量就OK了
================================================================================================
_____________________________________________________
===========================================================================================
============================================================================================
例子:每个学生求平均值的存储过程。
遇到的问题是带参数游标中的变量名字不要和表中的一样,否则会出问题
create or replace procedure AAA as --查询学生表的ID cursor s_sno is select s.sno from student s; --通过学生ID查询平均成绩 cursor sc_avg(s_no varchar2) is select avg(sc.degree) from score sc where sc.sno=s_no; s_sno_j student.sno%type; --变量ID sc_avg_i score.degree%type; --变量平局成绩 begin open s_sno;--打开查询ID的游标 loop fetch s_sno into s_sno_j; exit when s_sno%notfound; open sc_avg(s_sno_j); --打开查询平均成绩的游标,参数为学生ID loop fetch sc_avg into sc_avg_i; exit when sc_avg%notfound; dbms_output.put_line(sc_avg_i); end loop; close sc_avg; end loop; close s_sno; end AAA;
###############################################################################################
包中带过程 要自己定义一个type [cur_name] is ref cursor游标,返回的时候就直接 procedure AAA(变量名 out [cur_name])如此申明OUT变量
存储过程 用系统默认的 sys_refcursor 游标类型 定义变量就OK了
================================================================================================
--PL/SQL Code(存储过程) 带游标的OUT参数,返回游标(ref cursor) create or replace procedure retCursor(ret_cursor out sys_refcursor)is ret_cursor_value sys_refcursor; begin open ret_cursor_value for select * from student; ret_cursor:=ret_cursor_value; end retCursor;
_____________________________________________________
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@XX.XX.XX.XXX:XXXX:oracle9i","XXX_temp","XXX_temp"); DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); CallableStatement cs = conn.prepareCall("{ call retCursor(?) }"); cs.registerOutParameter(1,OracleTypes.CURSOR); cs.execute(); ResultSet rs = ((OracleCallableStatement)cs).getCursor(1); while(rs.next()) { System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+ rs.getDate(4)+" "+rs.getString(5)); }
===========================================================================================
--PL/SQL Code (包中带过程) 过程带游标的OUT参数,返回游标(ref cursor) create or replace package my_pack as type my_ref_cursor is ref cursor; procedure getMyCursor(val out my_ref_cursor); end my_pack; create or replace package body my_pack as procedure getMyCursor(val out my_ref_cursor) is begin open val for select * from student; end; end my_pack;
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin :@XX.XX.XX.XXX:XXXX:oracle9i","XXX_temp","XXX_temp"); DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); CallableStatement cs = conn.prepareCall("{ call my_pack.getMyCursor(?) }"); cs.registerOutParameter(1,OracleTypes.CURSOR); cs.execute(); ResultSet rs = ((OracleCallableStatement)cs).getCursor(1); while(rs.next()) { System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+ rs.getDate(4)+" "+rs.getString(5)); }
============================================================================================
发表评论
-
orcale 常用练习
2011-07-04 08:52 1103(ORACLE-E-001)员工信息综合查询 1. 用 sq ... -
oracle 过程update 不成功的一个原因
2011-04-01 17:08 1940今天一个同事写oracle 的存储过程遇到了一个问题, ... -
oracle 季度
2011-03-29 14:31 1099-- 本季度第一天 SELECT to_char(TRUNC ... -
数据库常用查询
2011-03-10 13:54 917http://wt871031.blog.163.com/bl ... -
ORACLE JOB INTERVAL 参数设置
2011-03-10 13:04 2573------------------------------- ... -
plsql 设置
2010-11-28 16:06 1113E:\oracle\NETWORK\ADMIN\tnsname ... -
oracle 常用函数
2010-09-09 22:16 11231。上月末天: SQL> select to_char( ... -
Ibatis调用存储过程
2010-09-06 17:16 928Ibatis调用存储过程 procedure.xml的iba ... -
ibatis存储过程中,Oracle VARRAY自定义数据类型做IN参数的处理。
2010-09-06 17:07 1413(1)在oracle中有如下自定义数据类型。 create ... -
sql 语句
2010-09-06 15:49 1092select * from t where rownum ... -
导出表结构及数据
2010-06-09 21:58 1004mssql2.rar -
过程1
2010-04-16 09:22 867create or replace procedure aut ... -
DECODE 实现表的转置
2010-04-15 21:50 2051数据库中的表是由列和 ... -
oracle 存储过程 一例
2010-04-15 16:53 1529CREATE OR REPLACE PACKAGE PY_PC ... -
存储过程 返回结果集
2010-04-15 12:55 1525配合oracle临时表, 使用存储过程来返回结果集的数据读 ... -
转:Oracle递归查询
2010-04-12 17:46 2037有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到 ... -
oracle 数据字典
2010-04-10 12:58 1025select ID,BH,e.dictmean as BM,S ... -
oracle date日期类型
2010-04-09 16:47 1398insert into table_income valu ... -
mysql oracle sql server 分页
2010-04-06 08:57 1224SQL server分页: Sql代码 select t ... -
视图实例
2010-03-23 16:00 969CREATE or REPLACE view view_wil ...
相关推荐
Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...
本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`...
### Oracle存储过程返回结果集详解 #### 一、概述 在Oracle数据库中,存储过程是一种重要的编程组件,它能够执行一系列SQL语句并处理复杂的业务逻辑。存储过程的一个常见应用场景是返回结果集(Record Set),这有...
本篇将详细讨论存储过程返回结果集的两种类型:调用者(to caller)和客户应用(to client)。 首先,让我们理解这两种返回结果集类型的差异: 1. **调用者(to caller)**: 当存储过程的结果集返回给调用者时,...
### CallableStatement调用Oracle存储过程返回结果集(ResultSet) #### 一、无返回值的存储过程调用 在本节中,我们通过一个具体的例子来详细介绍如何使用`CallableStatement`来调用Oracle数据库中的无返回值存储...
Delphi 中调用 Oracle 的存储过程返回数据集是指在 Delphi 应用程序中调用 Oracle 数据库中的存储过程,并将存储过程的返回结果集显示在 Delphi 应用程序中。这种方式可以将 Oracle 数据库中的数据实时同步到 Delphi...
本篇文档主要介绍了如何通过存储过程返回结果集,分为两种方式:过程返回记录集和函数返回记录集。 1. 过程返回记录集: 在Oracle中,可以通过OUT参数来让存储过程返回一个结果集。这里使用了REF CURSOR类型,它是...
总的来说,使用VB调用Oracle程序包内的存储过程返回结果集是一个常见的任务,需要熟悉数据库操作、存储过程以及VB的数据库访问技术。理解这个过程对于开发高效、可靠的数据库驱动的应用至关重要。
当存储过程返回一个结果集时,处理方式略有不同。以下是一个例子: ```sql CREATE OR REPLACE FUNCTION GET_EMPLOYEES RETURN SYS_REFCURSOR AS v_result SYS_REFCURSOR; BEGIN OPEN v_result FOR SELECT * FROM ...
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
### Java存储过程返回数据集 #### 标题与描述中的知识点概述 在Oracle数据库中,存储过程返回数据集的功能可以通过定义游标(RefCursor)来实现。与SQL Server相比,Oracle在这一方面需要额外的步骤来进行配置和...
如果存储过程返回一个结果集,例如我们需要查询某个ID对应的数据,可以创建一个返回结果集的存储过程。在Java中处理这种存储过程的步骤类似,但需要额外处理返回的结果集: 1. 调用存储过程:`cs.execute();` 2. ...
oracle存储过程中,实现成绩分段显示人数,produce中带三个传入参数:起始分数(例如0),总分(例如100),分数间隔(例如10)。一个返回参数为游标,用来返回结果集。
- `ResultSet`对象`rs`可以像处理普通的SQL查询结果一样进行遍历,读取存储过程返回的数据。 注意,处理返回的Cursor时,必须确保存储过程已经正确地打开并返回了游标,否则在Java端无法正常获取数据。此外,为了...
现在,`dataTable`变量就包含了存储过程返回的数据。你可以遍历这个表格,访问每一行和每一列的数据: ```csharp foreach (DataRow row in dataTable.Rows) { foreach (DataColumn column in dataTable.Columns) ...
存储过程是预编译的SQL语句集合,可以接受参数、返回结果并执行一系列操作。函数则类似于存储过程,但必须返回一个值。在Oracle中,它们都存储在数据库中,可被多次调用,提高了代码复用性和执行效率。 在Hibernate...
本文将深入探讨如何在存储过程中使用另一个存储过程返回的查询结果集。 首先,假设我们有一个名为`sp_GetBorrowRecord`的存储过程,它接受两个日期参数`@BeginTime`和`@EndTime`,并返回所有在这段时间内发生的借书...
在这段文字中,主要介绍了如何使用ASP(Active Server Pages)技术调用Oracle存储过程,并且获取该存储过程返回的结果集。为了更好地理解这些步骤,下面将详细解读相关知识点。 首先,Oracle作为一个功能强大的...
存储过程返回结果集