java调用oracle存储过程返回多条结果集
oracle版本:11g
oracle存储过程,使用游标的方式返回多行、多列数据集合:

CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT,*/ --传入参数,不需要可注释
O_CUR OUT SYS_REFCURSOR --输出数据,本文重点描述
) IS
BEGIN
OPEN O_CUR FOR
SELECT *
FROM (SELECT 'A', SYSDATE - 1
FROM DUAL
UNION ALL
SELECT 'B', SYSDATE
FROM DUAL
UNION ALL
SELECT 'C', SYSDATE + 1 FROM DUAL) O
WHERE 1 = 1;
END;

java代码编码,程序直接调用oracle的存储过程:SP_DATA_TEST,调用的方法:call SP_DATA_TEST(?),本文只需要输出数据,不需要输入参数,故只需要一个“?”即可,若是需要传输参数,则根据需要填写多个参数即可。本文直接使用了main方法测试,也可先自建java oracle连接池后使用。

1 package com.***.test;
2
3 import java.sql.CallableStatement;
4 import java.sql.Connection;
5 import java.sql.DriverManager;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8
9 public class ProceTest {
10
11 public static void main(String[] args) {
12 try {
13 DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
14 Class.forName("oracle.jdbc.driver.OracleDriver");
15 String url = "jdbc:oracle:thin:@10.0.0.1:1521:dbcsk";
16 String username = "****";
17 String password = "***";
18 Connection conn = DriverManager.getConnection(url, username,
19 password);
20 String sql = "{call SP_DATA_TEST(?)}";
21 CallableStatement statement = conn.prepareCall(sql);
22 // statement.setInt(1, 1);
23
24 statement.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
25 statement.execute();
26
27 ResultSet rs = (ResultSet)statement.getObject(1);
28 int i=1;
29 while (rs.next()) {
30 System.out.println(rs.getString(1)+":"+rs.getString(2));
31 i++;
32 }
33 rs.close();
34 statement.close();
35 conn.close();
36
37 } catch (SQLException e) {
38 e.printStackTrace();
39 } catch (ClassNotFoundException e) {
40 e.printStackTrace();
41 }
42 }
43
44 }

程序返回值:
A:2016-03-22 14:46:52
B:2016-03-23 14:46:52
C:2016-03-24 14:46:52
原来的博客密码无法找回了,只能重新注册一个,为方便记录,还得在复制一遍,麻烦死了!
java调用oracle存储过程返回多条结果集的更多相关文章
- 160307、Java调用Oracle存储过程返回结果集
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGI ...
- [转].net 调用oracle存储过程返回多个记录集
本文转自:http://www.netwinform.com/articleinfo.aspx?id=17 存储过程: CREATE OR REPLACE PROCEDURE p_query_cs ( ...
- Java调用oracle存储过程通过游标返回临时表数据
注:本文来源于 < Java调用oracle存储过程通过游标返回临时表数据 > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结 ...
- Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...
- 用java 调用oracle存储过程总结
SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...
- 123 c#调用oracle存储过程返回数据集 --通过oracle存储过程返回数据集
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57| 分类: net|字号 订阅 CREATE OR REPLACE PACKAGE pkg_tableTypeIS ...
- c#调用oracle存储过程返回数据集
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57| 分类: net|字号 订阅 CREATE OR REPLACE PACKAGE pkg_tableTypeIS ...
- JAVA调用oracle存储过程实例
1.创建添加存储过程 CREATEORREPLACEPROCEDURE stu_proc(v_id INNUMBER, v_name INVARCHAR2, v_age INNUMBER) AS BE ...
- 用java调用oracle存储过程总结(转)
//1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立 ...
随机推荐
- 磁盘性能测试工具之fio
fio是测试磁盘性能的一个非常好的工具,用来对硬件进行压力测试和验证. 注意事项 CentOS 6.5等较老版本的操作系统用fdisk创建分区时,默认为非4KB对齐选择初始磁柱编号,对性能有较大的影响 ...
- react: typescript integrate withRouter
define interface: export interface INav { nav: string } export interface IModuleItem { state?: strin ...
- vue3开发饿了么商城2020年新版本
带手机验证码登陆, 带全套购物车系统 带数据库 前后端分离开发 带定位用户功能 数据库代码为本地制作好了 带支付宝支付系统 带django开发服务器接口教程 地址: https://www.dua ...
- 是时候学习python了
“ 学习Pyhton,如何学以致用 -- 知识往问题靠,问题往知识靠” 01 为什么学Python 一直有听说Python神奇,总是想学,虽然不知道为啥.奈何每天写bug,修bug忙得不亦乐乎,总是不 ...
- CG-CTF(6)
CG-CTF https://cgctf.nuptsast.com/challenges#Web 续上~ 第三十一题:综合题2 查看本CMS说明: 分析: ①数据库表名为admin:字段名为usern ...
- Cent OS 7 添加 EPEL Nux Dextop ELRepo等源
Cent OS 7 添加第三方yum源 CentOS由于很追求稳定性,所以官方源中自带的软件不多,因而需要一些第三方源. 比如EPEL.ATrpms.ELRepo.Nux Dextop.RepoFor ...
- 终止过久没有返回的 Windows API 函数 ---- “CancelSynchronousIo”
Marks pending synchronous I/O operations that are issued by the specified thread as canceled. BOOL W ...
- 还在写CURD?试试这款基于mybatis-plus的springboot代码生成器
目录 ⚡Introduction ✔️Release Features Quick Start Examples 1.Controller模板代码示例 2.Service模板代码示例 3.Servic ...
- element-ui 通用表单封装及VUE JSX应用
一.存在及需要解决的问题 一般在做后台OA的时候会发现表单重复代码比较多,且逻辑基本一样,每次新加一个表单都需要拷贝基本一致的代码结构,然后只是简单地修改对应的字段进行开发 二.预期结果 提取重复的表 ...
- 详解如何使用gulp实现项目在浏览器中的自动刷新
情况描述: 我们很容易遇到这样一种情况: 我们并不是一开始就规划好了整个项目,比如可能接手别人的项目或者工程已经手动创建好了,现在要想利用gulp来实现浏览器自动刷新,那么如何做呢? 其实非常简单,本 ...