1.新建一个packages,声明返回多个游标的结果集
CREATE OR REPLACE PACKAGE testxx
IS
TYPE retcursor IS REF CURSOR;
TYPE retcursor2 IS REF CURSOR;
PROCEDURE pro_read
(
outcurse OUT retcursor,
outcurse2 OUT retcursor2
);
END;
2。新建packages body
CREATE OR REPLACE PACKAGE BODY testxx IS
PROCEDURE pro_read
(
outcurse OUT retcursor,
outcurse2 OUT retcursor2
)
IS
begin
OPEN outcurse FOR
select 1,2 from dual;
OPEN outcurse2 FOR
select 2,4 from dual;
return;
end;
END;
3.java 实现代码
得到数据库连接那段就不再重复出来了
public void testPro () throws Exception {
CallableStatement cstmt=null;
Connection conn=null;
ResultSet rs = null;
ResultSet rs1 = null;
try {
conn=DBConnectionManager.getInstance().getConnection(dbName);
logger.info("---conn--------"+conn);
String sqlstr = "{call TESTXX.PRO_READ(?,?)}";
cstmt = conn.prepareCall(sqlstr);
cstmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR); //outcurse
cstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR); //outcurse2
cstmt.execute();
rs = (ResultSet)cstmt.getObject(1);
rs1 = ((oracle.jdbc.OracleCallableStatement)cstmt).getCursor(2);
while(rs.next()){
logger.info(rs.getString("1")+"-----------"+rs.getString("2"));
}
while(rs1.next()){
logger.info(rs1.getString("2")+"-----------"+rs1.getString("4"));
}
cstmt.close();
} catch (SQLException se) {
logger.error (se.getMessage(),se);
} finally {
try {
if (rs != null){rs.close();}
if (rs1 != null){rs1.close();}
if (cstmt != null) cstmt.close();
conn.close();
} catch(SQLException see) {
logger.info("Exception occured closing stmt objects: " + see);
}
}
}
相关推荐
《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的...个完整案例来介绍基于Java开发包和Oracle数据库进行案例开发的详细过程...
一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...
《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的...个完整案例来介绍基于Java开发包和Oracle数据库进行案例开发的详细过程...
当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。用户对数据库的各种操作主要在SGA区中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。PGA区是在用户进程连接...
其含义是定义一个游标c_emp,代表employee表中所有emp_id字段为3的结果集。当需要操作该结果集时,必须完成三步:打开游标、使用fetch语句将游标里的数据取出、关闭游标。 游标用来处理从数据库中检索的多行记录...
42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以...
19、用JDBC如何调用存储过程 69 20、JDBC中的PreparedStatement相比Statement的好处 71 21、写一个用jdbc连接实例。 71 22、ArrayList和Vector的区别? 73 23、List、Set和Map的区别? 74 24、Collection 和 ...
使用多个 UTL_FILE_DIR 参数即可指定多个目录。请注意所有用户均可读取或写入 UTL_FILE_DIR 参数中指定的所有文件。 值范围: 任何有效的目录路径。 默认值: 无 plsql_v2_compatibility: 说明: 设置 PL/SQL 兼容级...
2、 定义一个为修改职工表(emp)中某职工工资的存储过程子程序,职工名作为形参,若该职工名在职工表中查找不到,就在屏幕上提示“查无此人”然后结束子程序的执行;否则若工种为MANAGER的,则工资加$1000;工种为...
产品安装过程中将会出现以上2个界面 9. 步骤8/8:完成安装 卸载Oracle 1. 在运行services.msc打开服务,停止Oracle的所有服务。 2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\...
2.调用存储过程 72 3.修改(替换同名的存储过程) 73 4.参数 73 (1)In 参数:向过程传入一个值 73 (2)Out参数: 73 (3)In Out参数: 74 (4)默认值 74 5.局部变量和子过程 74 8.2函数(function) 75 1.创建 75...
注意:1)有多个BOOLEAN表达式时候 AND(与),OR(或),NOT(非) 2)条件为FALSE与TRUE 相同; 2. 循环语句 1) Loop 循环 Loop ... (循环体) IF boolean_expr(条件) THEN /* 加条件语句,当满足条件时候退出循环*/ ...
53. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 13 54. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 13 55. java中有几种类型的流?...
42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以...
Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...
-- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; --那么这个用户名就能使用了。 --(默认全局数据库名orcl) 1、...