关于oracle调用存储过程返回结果集
来源:互联网 发布:阿里云配置svn服务器 编辑:程序博客网 时间:2024/06/16 19:13
这两天因为公司要求,去学习了下以前一直模模糊糊的存储过程,记录下关于返回结果集的问题。
要返回结果集,首先你必须有个游标,它是记录你的查询集的。而定义一个游标有好多方法:
1,你可以在包中定义。然后将游标变量作为存储过程参数的类型。
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE get (outcurse IN OUT myrctype);
END pkg_test;
然后你就可以在package body 中写你要的存储过程了:
CREATE OR REPLACE PACKAGE BODY pkg_test IS
PROCEDURE get
(
outcurse IN OUT retcursor
)
IS
begin
OPEN outcurse FOR
select * from tbl_test
where rownum<6;
return;
end;
2,第二种方法是直接调用oracle自带的变量 sys_cursor:
CREATE OR REPLACE PROCEDURE getcity ( citycode IN VARCHAR2, ref_cursor OUT sys_refcursor /* 这个sys_refcursor类型在SYS.STANDARD包中 */)ASBEGIN OPEN ref_cursor FOR SELECT * FROM tb_city_code WHERE city_code = citycode;END;
在程序中调用应该就很简单了:
if(conn !=null){
String sqlstr = "{call pkgtest.get())}";
CallableStatement cstmt = conn.prepareCall(sqlstr);
cstmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR); //outcurse
cstmt.executeUpdate();
ResultSet rs = (ResultSet) cstmt.getObject(1); // 这里吧信息已经读入rs结果集里面
while (rs.next()) {
System.out.println(rs.getString("s_date1")); //tbl_test 表里的字段名称或是结果集的列名称
System.out.println(rs.getString("s_date2"));
}
conn.close();
conn = null;
}
- 关于oracle调用存储过程返回结果集
- 调用Oracle存储过程返回结果集
- ASP 调用 ORACLE存储过程并返回结果集
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- ASP 调用 Oracle 存储过程返回结果集
- C#调用ORACLE存储过程返回结果集及函数
- ado.net oledb 调用oracle存储过程返回结果集
- c#调用oracle存储过程返回结果集及函数
- C#与java调用Oracle存储过程返回结果集
- C#调用ORACLE存储过程返回结果集及函数
- Java 调用 Oracle 存储过程返回结果集
- asp 调用 oracle存储过程并返回结果集
- 拥抱开源IaaS云平台:360度盘点
- MFC中的DoDataExchange(CDataExchange *pDX)
- 深入探讨PHP下拉框选择的实现方法
- 2012九月十月腾讯,网易游戏,百度最新校园招聘笔试题
- in 或者 out 参数不对。多半是调用PLSQL程序包时设置的不正确。
- 关于oracle调用存储过程返回结果集
- Linux下传输整个目录
- 禁用所有网卡IPv6
- 長의 時運의 圖像 洛書
- 在页面的定义文件中设置一个参数
- 黑板模式
- Java Map遍历方式的选择
- hi3531结构: VB_CONF_S
- java代理模式浅识