Java调用oracle存储过程通过游标返回临时表数据
2018-04-19 09:33
941 查看
注:本文来源于 《 Java调用oracle存储过程通过游标返回临时表数据 》
Java调用oracle存储过程通过游标返回临时表数据
项目开发过程中,不可避免的会用到存储过程返回结果集。特别是选择Oracle做为数据库时,就更麻烦了,因为Oracle存储过程和SQLServer的有点不太一样,直接返回不了结果集,那么怎么才能在使用Oracle的情况下返回结果集,程序代码中怎么获取到那,请看下面几篇:
1.存储过程返回结果集
2.Java中执行存储过程以及多结果集处理
3.返回临时表中数据
package com.zjhcsoft.test.utl; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import oracle.jdbc.OracleCallableStatement; import oracle.jdbc.driver.OracleTypes; public class TestOracleProc3 { /** * @param args */ public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { e.printStackTrace(); } Connection conn = null; String DBurl = "jdbc:oracle:thin:@134.98.8.168:1521:ora817"; try { conn = DriverManager.getConnection(DBurl, "sfz2", "sfz2_123"); System.out.println("Getting Connection..."); conn.close(); } catch (Exception e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(DBurl, "sfz2", "sfz2_123"); long start = System.currentTimeMillis(); //最关键一步 conn.setAutoCommit(false); OracleCallableStatement cstmt = (OracleCallableStatement)conn.prepareCall("{call sfz_obj.proc_sfz_proc_test(?,?)}"); cstmt.setString(1, ""); cstmt.registerOutParameter(2,OracleTypes.CURSOR); cstmt.execute(); long end = System.currentTimeMillis(); System.out.println("this procedure consumes "+((end-start)/1000)+" excute time."); start = System.currentTimeMillis(); int i=0; ResultSet rs = (ResultSet)cstmt.getObject(2); while (rs.next()) { System.out.println("column"+(i+1)+":"+rs.getString(1)+", "+rs.getString(2)+", "+rs.getString(3)); i++; } System.out.println("this procedure has "+(i-1)+" data."); end = System.currentTimeMillis(); System.out.println("show this procedure data consumes "+((end-start)/1000)+" excute time."); conn.commit(); cstmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
————————————————————————————————————————————————————————————————————————————————————————————
相关文章推荐
- Java调用oracle存储过程通过游标返回临时表数据
- Java调用oracle存储过程通过游标返回临时表数据
- java 调用oracle 分页存储过程 返回游标数据集
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】
- jdbc中调用oracle 返回游标类型的存储过程
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- oracle如何在一个存储过程中调用另一个返回游标的存储过程
- Oracle 调用 JAVA 实战(通过 Oracle 存储过程读取服务器目录)
- oracle调用返回游标的存储过程
- jdbc中调用oracle 返回游标类型的存储过程
- 如何通过java程序调用oracle中的存储过程
- 最完整的:JAVA调用ORACLE的存储过程、函数的返回结果集例子
- 通过java调用存储过程往oracle数据库里插数据(无返回值)
- java通过prepareCall调用oracle返回游标的存储过程
- 当java调用oracle的存储过程时,存储过程的返回值类型不能为boolean
- java 调用oracle的存储过程返回记录集
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- Java 调用 Oracle 存储过程返回结果集
- oracle 在一个存储过程中调用另一个返回游标的存储过程