call_oracle_package_function_refcursor.java~55~

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

JAVA~55~
55
字号
package java_call_oracle_package;

import java.sql.*;
import oracle.jdbc.OracleTypes;
import oracle.jdbc.OracleCallableStatement;

public class Call_Oracle_Package_Function_RefCursor {
    private Connection conn = null;
    private CallableStatement stmt = null;
    public Call_Oracle_Package_Function_RefCursor() {
        try {
            conn = GetConn.getConn();
            stmt = conn.prepareCall("{?=call myPack.QueryStuInfor(?,?,?)}");
            //因为第一个是返回值 好比存储过程的out  所以要注册
            stmt.registerOutParameter(1, OracleTypes.CURSOR);
            stmt.setString(2, "WuHan");
            stmt.setString(3, "C#");
            stmt.setInt(4, 71);
            stmt.execute();

            ResultSet rs = ((OracleCallableStatement) stmt).getCursor(1);
            while (rs.next()) {
                System.out.println("111");
                String str1 = rs.getString(1);
                String str2 = rs.getString(2);
                String str3 = rs.getString(3);
                String str4 = rs.getString(4);
                String str5 = rs.getString(5);
                System.out.println(str1 + "  " + str2 + "  " + str3 + "  " +
                                   str4 + "  " + str5);
            }
        } catch (Exception e) {
            System.out.println(e.getMessage().toString());
        } finally {
            safeClose();
        }

    }

    public void safeClose() {
        try {
            if (conn != null) {
                conn.close();
            } else if (stmt != null) {
                stmt.close();
            }
        } catch (Exception e) {}
    }

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

}

⌨️ 快捷键说明

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