Oracle在out参数中访问光标

前端之家收集整理的这篇文章主要介绍了Oracle在out参数中访问光标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一 概念

申明包结构
包头:负责申明
包体:负责实现
二 需求
查询某个部门中所有员工的所有信息
三 包头
  1. CREATE OR REPLACE
  2. PACKAGE MYPACKAGE AS
  3. type empcursor isref cursor;
  4. procedure queryEmplist(dno in number,emplist out empcursor);
  5. END MYPACKAGE;
四 包体
包体需要实现包头中声明的所有方法
CREATE OR REPLACE
  • PACKAGE BODY MYPACKAGE AS
  • emplist out empcursor) AS
  • BEGIN
  • --打开光标
  • open emplist forselect*from emp where deptno = dno;
  • END queryEmplist;
  • END MYPACKAGE;
  • 五 在应用程序中访问包中的存储过程
    1、代码
    package demo.oracle;
  • import java.sql.CallableStatement;
  • import java.sql.Connection;
  • import java.sql.ResultSet;
  • import oracle.jdbc.OracleCallableStatement;
  • import oracle.jdbc.OracleTypes;
  • import org.junit.Test;
  • import demo.utils.JDBCUtils;
  • publicclassTestCursor{
  • /*
  • CREATE OR REPLACE PACKAGE MYPACKAGE AS
  • type empcursor is ref cursor;
  • procedure queryEmplist(dno in number,emplist out empcursor);
  • END MYPACKAGE;
  • * */
  • @Test
  • publicvoid testCursor(){
  • String sql="{call MYPACKAGE.queryEmplist(?,?)}";
  • Connection conn =null;
  • CallableStatement call =null;
  • ResultSet rs =null;
  • try{
  • //获取数据库的连接
  • conn =JDBCUtils.getConnection();
  • //创建statement
  • call = conn.prepareCall(sql);
  • //对于in参数,赋值
  • call.setInt(1,10);
  • //对于out参数,申明
  • call.registerOutParameter(2,OracleTypes.CURSOR);
  • //执行调用
  • call.execute();
  • //取出该部门中所有员工的信息
  • rs =((OracleCallableStatement)call).getCursor(2);
  • while(rs.next()){
  • //取出该员工的员工号,姓名,薪水和职位
  • int empno = rs.getInt("empno");
  • String name =rs.getString("ename");
  • double salay = rs.getDouble("sal");
  • String job = rs.getString("empjob");
  • System.out.println(empno+"\t"+name+"\t"+salay+"\t"+job);
  • }
  • }catch(Exception e){
  • e.printStackTrace();
  • }finally{
  • JDBCUtils.release(conn, call, rs);
  • }
  • }
  • }
  • 2、运行结果
    7782CLARK6450.0MANAGER
    7839KING10100.0PRESIDENT
    7934MILLER3300.0CLERK
    原文链接:https://www.f2er.com/oracle/208070.html

    猜你在找的Oracle相关文章