- 浏览: 584402 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 1078(ORACLE-E-001)员工信息综合查询 1. 用 sq ... -
oracle 过程update 不成功的一个原因
2011-04-01 17:08 1894今天一个同事写oracle 的存储过程遇到了一个问题, ... -
oracle 季度
2011-03-29 14:31 1043-- 本季度第一天 SELECT to_char(TRUNC ... -
数据库常用查询
2011-03-10 13:54 870http://wt871031.blog.163.com/bl ... -
ORACLE JOB INTERVAL 参数设置
2011-03-10 13:04 2510------------------------------- ... -
plsql 设置
2010-11-28 16:06 1077E:\oracle\NETWORK\ADMIN\tnsname ... -
oracle 常用函数
2010-09-09 22:16 10991。上月末天: SQL> select to_char( ... -
Ibatis调用存储过程
2010-09-06 17:16 899Ibatis调用存储过程 procedure.xml的iba ... -
ibatis存储过程中,Oracle VARRAY自定义数据类型做IN参数的处理。
2010-09-06 17:07 1373(1)在oracle中有如下自定义数据类型。 create ... -
sql 语句
2010-09-06 15:49 1060select * from t where rownum ... -
导出表结构及数据
2010-06-09 21:58 978mssql2.rar -
过程1
2010-04-16 09:22 843create or replace procedure aut ... -
DECODE 实现表的转置
2010-04-15 21:50 2025数据库中的表是由列和 ... -
oracle 存储过程 一例
2010-04-15 16:53 1510CREATE OR REPLACE PACKAGE PY_PC ... -
存储过程 返回结果集
2010-04-15 12:55 1498配合oracle临时表, 使用存储过程来返回结果集的数据读 ... -
转:Oracle递归查询
2010-04-12 17:46 2006有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到 ... -
oracle 数据字典
2010-04-10 12:58 1005select ID,BH,e.dictmean as BM,S ... -
oracle date日期类型
2010-04-09 16:47 1368insert into table_income valu ... -
mysql oracle sql server 分页
2010-04-06 08:57 1204SQL server分页: Sql代码 select t ... -
视图实例
2010-03-23 16:00 925CREATE or REPLACE view view_wil ...
相关推荐
该文档详细讲解Oracle在存储过程中如何利用Out参数返回一个结果集。示例简单易懂。
java调用oracle存储过程返回结果集,Record,cursor参照.pdf
CallableStatement调用Oracle存储过程返回结果集(ResultSet).doc
Oracle 存储过程返回结果集
使用VB调用Oracle程序包内的存储过程返回结果集 使用VB调用Oracle程序包内的存储过程返回结果集
oracle的存储过程如何返回结果集 oracle的存储过程如何返回结果集 oracle的存储过程如何返回结果集
java调用oracle存储过程返回结果集,Record,cursor.[参考].pdf
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
oracle存储过程中,实现成绩分段显示人数,produce中带三个传入参数:起始分数(例如0),总分(例如100),分数间隔(例如10)。一个返回参数为游标,用来返回结果集。
存储过程的返回结果集有2中类型:to caller(调用者),to client(客户应用)首先我们看一下声明这两种游标的例子:
oracle存储过程返回数据集,相比于sqlserver有些麻烦些,文档中有具体的实例说明,可以借鉴。
C#中调用oracle存储过程返回数据集
Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合 Spring jdbcTemplate 是一个强大的 JDBC 模板,提供了简洁的方式来访问数据库。在此文档中,我们将介绍如何使用 Spring jdbcTemplate 调用 Oracle 存储...
存储过程返回结果集
使用hibernate的query调用oracle的存储过程/function,包含例子,源码以及数据库文件
。。。
。。。
介绍了Delphi中调用oracle的存储过程返回数据集的各种方法
linq to sql 存储过程,返回结果集。但结果集和多结果集。
主要介绍了PostgreSQL中调用存储过程并返回数据集实例,本文给出一创建数据表、插入测试数据、创建存储过程、调用创建存储过程和运行效果完整例子,需要的朋友可以参考下