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

Oracle存儲過程實戰:從創建到Java調用的完整指南

     編輯:Oracle 資料庫基礎

Oracle存儲過程基礎概念

Oracle存儲過程是預編譯的PL/SQL代碼塊,存儲在數據庫中供應用程序調用。它們封裝了業務邏輯,減少網絡流量,提高性能並增強安全性。與匿名PL/SQL塊不同,存儲過程具有名稱、參數列表並永久存儲在數據字典中。

創建帶輸出參數的存儲過程

以下示例創建一個接收輸入參數並返回查詢結果的存儲過程:

CREATE OR REPLACE PROCEDURE TESTB(
    PARA1 IN VARCHAR2,
    PARA2 OUT VARCHAR2
) AS
BEGIN
    SELECT column_name INTO PARA2 
    FROM TESTTB 
    WHERE I_ID = PARA1;
END TESTB;

關鍵點:使用OUT參數返回值,INTO子句將查詢結果賦值給輸出變量。

Java中調用存儲過程

使用JDBC的CallableStatement調用存儲過程:

String url = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Connection conn = DriverManager.getConnection(url, "hyq", "hyq");
CallableStatement proc = conn.prepareCall("{call HYQ.TESTB(?,?)}");
proc.setString(1, "100");
proc.registerOutParameter(2, Types.VARCHAR);
proc.execute();
String result = proc.getString(2);
System.out.println("結果: " + result);

參數索引的重要性

注意:proc.getString(2)中的索引必須與存儲過程參數聲明順序一致。若OUT參數在第一位則用getString(1),第三位用getString(3)。可通過增加OUT參數實現多返回值。

最佳實踐建議

  • 始終使用try-with-resources自動關閉資源(JDK 7+)
  • 採用連接池管理數據庫連接
  • 異常處理要具體區分SQLException和其他異常
  • 生產環境避免硬編碼連接參數,使用配置文件
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved