在Oracle中,存儲過程的參數傳遞方法主要有以下幾種:
CREATE OR REPLACE PROCEDURE example_proc(param1 IN NUMBER, param2 IN VARCHAR2)
IS
BEGIN
-- 存儲過程邏輯
END;
/
調用該存儲過程時,需要按照參數的順序傳遞參數值:
EXEC example_proc(100, 'example');
EXEC example_proc(param2 => 'example', param1 => 100);
CREATE OR REPLACE PROCEDURE example_proc(param1 IN NUMBER DEFAULT 0, param2 IN VARCHAR2 DEFAULT 'default')
IS
BEGIN
-- 存儲過程邏輯
END;
/
調用該存儲過程時可以只傳遞部分參數值:
EXEC example_proc(param1 => 100);
CREATE OR REPLACE PROCEDURE example_proc(param1 IN NUMBER, param2 OUT VARCHAR2, param3 IN OUT DATE)
IS
BEGIN
param2 := 'output';
param3 := SYSDATE;
END;
/
調用該存儲過程時需要分別處理IN、OUT和IN OUT參數:
DECLARE
output_param VARCHAR2(20);
inout_param DATE;
BEGIN
example_proc(100, output_param, inout_param);
DBMS_OUTPUT.PUT_LINE('Output parameter: ' || output_param);
DBMS_OUTPUT.PUT_LINE('In/out parameter: ' || inout_param);
END;