首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 存儲過程簡單範例:建立、查詢與 Java 呼叫完整教學

     編輯:Oracle 資料庫基礎

建立存儲過程

以下範例示範如何建立一個簡單的 Oracle 存儲過程 test_pro3,該過程包含兩個 OUT 參數 x 和 y,分別指派為 20 和 30:

CREATE OR REPLACE PROCEDURE test_pro3(x OUT INT, y OUT INT)
IS
BEGIN
  x := 20;
  y := 30;
END;

查詢存儲過程原始碼

建立完成後,可透過 all_source 視圖查詢該過程的定義:

SQL> SELECT text FROM all_source WHERE TYPE = 'PROCEDURE' AND name = 'TEST_PRO3';

TEXT
--------------------------------------------------------------------------------
PROCEDURE test_pro3(x OUT INT,y OUT int)
IS
  BEGIN
    x := 20;
    y := 30;
  END;

已選擇6行。

Java 程式呼叫存儲過程

使用 JDBC 的 CallableStatement 即可呼叫上述存儲過程。以下為完整範例程式碼:

package votory;

import java.sql.*;

public class ConneDB {
    public ConneDB() {}

    public static void main(String[] args) {
        String driver = "oracle.jdbc.driver.OracleDriver";
        String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:SID";
        Connection conn = null;
        CallableStatement cstmt = null;

        try {
            Class.forName(driver);
            conn = DriverManager.getConnection(strUrl, "scott", "tiger");

            // 準備呼叫存儲過程
            cstmt = conn.prepareCall("{ call test_pro3(?,?) }");
            // 註冊 OUT 參數型別
            cstmt.registerOutParameter(1, Types.INTEGER);
            cstmt.registerOutParameter(2, Types.INTEGER);
            // 執行
            cstmt.execute();

            // 取得回傳值
            String test = cstmt.getString(1);
            String test2 = cstmt.getString(2);

            System.out.println(test + " " + test2);
            System.out.println("DONE..............");
        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            // 關閉資源
            try {
                if (cstmt != null) cstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}

執行結果

20 30
DONE..............

透過這個簡單範例,您可以快速掌握 Oracle 存儲過程的建立、查詢以及在 Java 中呼叫的基本流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved