⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 procedure_outrefcursor_param.java~29~

📁 oracle的一些详细资料oracle的一些详细资料 看看吧~~
💻 JAVA~29~
字号:
package java_call_oracle_procedure;

/*
       create or replace view myView
 as
 select 班级信息表.ClassID,ClassName,StuName,StuAddress from 班级信息表,学生基本信息表
 where 学生基本信息表.ClassID=班级信息表.ClassID



 create or replace package myPackage
 as
 type myRefCur is ref cursor;
 end;

 create or replace procedure myPro6
 (
 StuName_Param myView.StuName%type,
 pCur out myPackage.myRefCur
 )
 is
 begin
 open pCur for select * from myView where StuName=StuName_Param;
 end myPro6;
 */
//大家注意 操作ORACLE一般功能还是用的java.sql.*包  高级功能用oracle自己的包
import java.sql.Connection;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import oracle.jdbc.OracleTypes;

public class Procedure_OutRefCursor_Param {
    private Connection conn = null;
    private CallableStatement cstmt = null;
    private ResultSet rs = null;
    public Procedure_OutRefCursor_Param() {
        try {
            //通用的连接类获得连接
            conn = GetConn.getOracleConn();
            cstmt = conn.prepareCall("{call myPro6(?,?)}"); //一个代表in输入参数  第二个问号代表out输出参数
            cstmt.setString(1, "WangWu");
            //输出参数不能给值 要注册
            cstmt.registerOutParameter(2, OracleTypes.CURSOR); //INTEGER是一个静态常量
            cstmt.execute(); //执行存储过程cstmt.execute() 返回boolean值  返回false代表成功了 true代表失败
            rs = (ResultSet) cstmt.getObject(2);
            while (rs.next()) {
                //rs里面有四个列 因为输出参数是游标  游标是四个列
                String str1 = rs.getString(1);
                String str2 = rs.getString(2);
                String str3 = rs.getString(3);
                String str4 = rs.getString(4);
                System.out.println(str1 + "     " + str2 + "    " + str3 +
                                   "    " + str4);
            }
        } catch (Exception e) {
            System.out.println(e.getMessage().toString());
        } finally {
            safeClose();
        }
    }

    public void safeClose() {
        try {
            if (conn != null) {
                conn.close();
            } else if (cstmt != null) {
                cstmt.close();
            } else if (rs != null) {
                rs.close();
            }
        } catch (Exception e) {
            System.out.println(e.getMessage().toString());
        }
    }

    public static void main(String[] args) {
        new Procedure_OutRefCursor_Param();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -