procedure_outrefcursor_param.java~20~

来自「oracle的一些详细资料oracle的一些详细资料 看看吧~~」· JAVA~20~ 代码 · 共 71 行

JAVA~20~
71
字号
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)
        } 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 + =
减小字号Ctrl + -
显示快捷键?