SQL
PL/SQL 프로시저 IN, OUT, IN OUT 차이
Ninestar
2022. 12. 14. 13:41
반응형
--프로시저 선언
CREATE OR REPLACE PROCEDURE my_INOUT_proc
(
p_var1 VARCHAR2,
p_var2 OUT VARCHAR2,
p_var3 IN OUT VARCHAR2
)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('p_var1 = ' || p_var1);
DBMS_OUTPUT.PUT_LINE('p_var2 = ' || p_var2);
DBMS_OUTPUT.PUT_LINE('p_var3 = ' || p_var3);
p_var2 := 'A2';
p_var3 := 'B2';
END;
DECLARE
v_var1 VARCHAR2(100) := 'A';
v_var2 VARCHAR2(100) := 'B';
v_var3 VARCHAR2(100) := 'C';
BEGIN
my_INOUT_proc(v_var1, v_var2, v_var3);
DBMS_OUTPUT.PUT_LINE ('v_var2 = ' || v_var2);
DBMS_OUTPUT.PUT_LINE ('v_var3 = ' || v_var3);
END;

p_var1은 IN, A를 입력했고 그대로 출력
p_var2은 OUT , B 를 입력했지만 아무것도 출력이 안됨
p_var3은 IN OUT, C를 입력했고 C그대로 출력후 프로시저 내부에서 B2로 변경되어 B2가 최종적으로 출력