频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Oracle Package返回游标和Java调用

来源: 作者: 出处:巧巧读书 2006-11-17 进入讨论组

  创建测试oracle包:
Oracle Package返回游标和Java调用
create or replace package pkg_test as Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用type t_ref is ref cursor; Oracle Package返回游标和Java调用procedure p_test(cur_ref out t_ref); Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用end pkg_test; Oracle Package返回游标和Java调用/ Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用create or replace package body pkg_test as Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用procedure p_test(cur_ref out t_ref) is Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用begin Oracle Package返回游标和Java调用open cur_ref for 'select * from test'; Oracle Package返回游标和Java调用end p_test; Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用end pkg_test; Oracle Package返回游标和Java调用/

  
  下面是jdbc代码的调用。

  当然如果采用jdbc直接获得Connection下面的代码是没问题的。

Oracle Package返回游标和Java调用oracle.jdbc.OracleCallableStatement cs = null; Oracle Package返回游标和Java调用String sqlStr = "{call firstpage.getSeniorHighSchool(?,?,?)}"; Oracle Package返回游标和Java调用ResultSet rs = null; Oracle Package返回游标和Java调用try{ Oracle Package返回游标和Java调用cs = (oracle.jdbc.OracleCallableStatement)conn.prepareCall(sqlStr); Oracle Package返回游标和Java调用cs.setLong(1,arg[0]); Oracle Package返回游标和Java调用cs.setLong(2,arg[1]); Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用cs.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR); Oracle Package返回游标和Java调用cs.execute(); Oracle Package返回游标和Java调用rs = cs.getCursor(3); Oracle Package返回游标和Java调用 Oracle Package返回游标和Java调用while(rs.next()){ Oracle Package返回游标和Java调用//........... Oracle Package返回游标和Java调用} Oracle Package返回游标和Java调用rs.close(); Oracle Package返回游标和Java调用cs.close(); Oracle Package返回游标和Java调用}catch(Exception e){ Oracle Package返回游标和Java调用System.out.println("produce error "); Oracle Package返回游标和Java调用e.printStackTrace(); Oracle Package返回游标和Java调用}

  但是,如果采用连接池(比如:采用Weblogic或jboss等web服务器自带的连接池) 哈哈,这段代码就会让你头疼了。不信你试试。抛出CastClassException哈哈。

  下面是另一种写法,保你没事。这种写法风水好。哈哈

Oracle Package返回游标和Java调用CallableStatement cs = null; Oracle Package返回游标和Java调用cs = conn.prepareCall(sql); Oracle Package返回游标和Java调用cs.setInt(1,maxrow); Oracle Package返回游标和Java调用cs.setInt(2,minrow); Oracle Package返回游标和Java调用cs.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR); Oracle Package返回游标和Java调用cs.execute(); Oracle Package返回游标和Java调用rs = (ResultSet)cs.getObject(3);

  差别很简单。

  可以看看weblogic和jboss实现连接池的代码就知道了。

  一路ok了。

保留地址 http://www.qqread.com/oracle/2006/11/b278529.html 更多文章 更多内容请看Java环境安装配置Oracle 10g基础应用Java编程开发手册专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章