不返回數據的存儲過程通常用於執行DML操作(INSERT/UPDATE/DELETE),僅包含IN類型參數。這類過程簡化了調用邏輯,無需註冊輸出參數。
CREATE OR REPLACE PROCEDURE TESTA(
PARA1 IN VARCHAR2,
PARA2 IN VARCHAR2
) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID, I_NAME)
VALUES (PARA1, PARA2);
END TESTA;
前提條件:需預先創建表TESTTB,包含I_ID、I_NAME兩個字段。
CallableStatement proc = conn.prepareCall("{call HYQ.TESTA(?,?)}");
proc.setString(1, "100");
proc.setString(2, "TestOne");
proc.execute();
調用流程:獲取連接 → 準備調用 → 綁定輸入參數 → 執行 → 關閉資源。無需registerOutParameter和結果獲取步驟。
finally塊中按逆序關閉:ResultSet → Statement → Connectiontry-catch,防止一個關閉失敗影響其他AutoCloseable特性簡化代碼此類存儲過程常用於:批量數據導入、日誌記錄、狀態更新、數據歸檔等不需要返回結果的業務操作。