在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;