oracle存储过程返回结果集

http://www.2cto.com/database/201204/127180.html

oracle实现存储过程返回查询结果集合的方法

--实现存储过程返回查询结果集合的方法 ,以下代码来自网络整理

http://topic.csdn.net/u/20090721/12/ba403739-3212-4016-83ec-2a7062f21081.html

Java代码

--第一种方法

create or replace Package SYSBasic

as  www.2cto.com

type cc_cursor is ref cursor;

end SYSBasic;

CREATE OR REPLACE PROCEDURE getall(

c_CurSor OUT SYSBASIC.cc_CURSOR  --光标结果

)

begin

open c_CurSor For

select * from table1;

end getall;   www.2cto.com

--第二种方法

create or replace procedure p_test(p_cur out sys_refcursor)as

begin

open p_cur for select  * from emp;

end p_test;

在sqlplus界面:

SQL> var r refcursor;

SQL> exec p_test(:r);

SQL> print r;

使用pl/sql进行调用查看见如下链接:

http://blog.csdn.net/kimizhou_blog/article/details/39340851

时间: 2024-07-29 23:20:04

oracle存储过程返回结果集的相关文章

oracle 存储过程返回结果集

好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集. 配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题. 本文只讨论使用存储过程返回结果集. 具体实现如下: -- 启用服务器输出---------------------set serveroutput

C#中使用Oracle存储过程返回结果集

问题: 在MSSQLServer中定义的存储过程可以直接返回一个数据集,如: create procedure sp_getAllEmployees as SELECT * FROM [NORTHWND].[dbo].[Employees] 在Oracle数据库中这样定义是错误的,怎么解决? 办法: Oracle中可以使用游标(Cursor)对数据集进行操作,但在存储过程输出参数中直接使用Cursor错误,此时的Cursor应该是一个定义游标的关键字并非类型,所以先要定义一个包,在包中声明全局的

Oracle 存储过程 返回结果集

CREATE OR REPLACE PACKAGE PKG_CUST_RISK IS -- AUTHOR : ADMINISTRATOR -- CREATED : 2014/4/22 10:00:27 -- PURPOSE : 客户风险 VI_ERRORCODE M_LOG.ERRORCODE%TYPE DEFAULT 0; --数值型 异常代码 VS_ERRORTEXT M_LOG.ERRORTEXT%TYPE DEFAULT NULL; --字符型 异常描述 VS_OWNER M_LOG.O

JFinal调用Oracle存储过程返回结果集

表结构 存储过程 CREATE OR REPLACE PROCEDURE TEST3(TID IN INTEGER,O OUT SYS_REFCURSOR) AS BEGIN IF(TID>0) THEN OPEN O FOR SELECT * FROM XHSCK.T_ADMINISTRATIVE_LEVEL T WHERE T.ADMINISTRATIVE_LEVEL_ID = TID; ELSE OPEN O FOR SELECT * FROM XHSCK.T_ADMINISTRATIVE

怎样让Oracle的存储过程返回结果集

Oracle存储过程: CREATE OR REPLACE PROCEDURE getcity ( citycode IN VARCHAR2, ref_cursor OUT sys_refcursor /* 这个sys_refcursor类型在SYS.STANDARD包中 */ ) AS BEGIN OPEN ref_cursor FOR SELECT * FROM tb_city_code WHERE city_code = citycode; END; / Java调用代码: try { D

mybatis调用mysql存储过程返回结果集

存储过程中经常需要返回结果集. Mysql 中直接用 select 即可返回结果集.而 oracle 则需要使用游标来返回结果集.这一点 Mysql 相对比较方便,如下代码即可实现输出结果集: 存储过程定义: DELIMITER $$ DROP procedure IF EXISTS pro_sql_data1 $$ CREATE procedure pro_sql_data1(in sear_name varchar(2000)) BEGIN if sear_name is not null

[转].net 调用oracle存储过程返回多个记录集

CREATE OR REPLACE PROCEDURE p_query_cs ( p_infotype IN VARCHAR2, p_fromareacode IN VARCHAR2, p_toareacode IN VARCHAR2, p_keytype IN NUMBER, r_cursor1 OUT sys_refcursor, --结果集 r_cursor2 OUT sys_refcursor --结果集 ) IS BEGIN OPEN r_cursor1 FOR SELECT * FR

java读取ORACLE 存储过程 返回游标(cursor) 格式 读取到List中

/**  * 执行存储过程(目前只支持返回一个游标) never null  *   * @param sql  *            执行的语句  * @param index  *            当前游标的下标  * @param obj  *            参数(用来替换sql语句中的?)  * @param rop  *            注册oracle的输出参数(注意,这里假如下标为1的是输入参数,为2的输出参数  *            则游标要以输出参数

python 调用mysql存储过程返回结果集

存储过程: delimiter | create procedure get_product_info(in imid int(10),int iuser varchar(20)) begin select * from tb_test where mid = imid and user = iuser; end; | delimiter ; python调用: import mysql.connector cnx = mysql.connector.connect( user='test',p