[오라클 PL/SQL] PL/SQL 프로시저 매개변수 IN OUT 이란?
- Database(데이터베이스)/Oracle
- 2019. 11. 28. 01:00
안녕하세요.
오늘은 오라클 PL/SQL에서 IN OUT 매개변수에 대해서 알아 보려고 합니다.
IN OUT 매개변수는 입력과 동시에 출력용으로 사용할 수 있게 해주는 역학을 합니다.
프로시저 실행 시 OUT 매개변수에 전달할 변수에 값을 할당해서 넘겨 줄 수는 있지만 이것의 큰 의미는 없는 것입니다.
OUT 매개변수는 해당 프로시저가 성공적으로 실행을 완료할 때까지 값이 할당 되지 않습니다. 따라서 매개변수에 값을 전달해서 사용한 다음 다시 이 매개변수에 값을 받아와 참조하고 싶을 때 이럴 때 IN OUT 매개변수를 사용하시면 되겠습니다.
이해하기 쉽게 예제 코드를 통해서 알아 보도록 하겠습니다.
IN OUT 매개변수 예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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; |
매개변수로 IN 형태인 p_var1, OUT 형태인 p_var2, IN OUT 형태인 p_var3 총 3개의 매개변수를 받는 프로시저인 my_INOUT_proc 프로시저를 위와 같이 생성하였습니다.
이제 이 프로시저를 한번 실행해 보도록 할게요.
my_INOUT_proc 프로시저 실행
1 2 3 4 5 6 7 8 9 10 11 12 |
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’ 그대로 출력된 것을 확인하실 수 있습니다.
OUT 매개변수인 p_var2 자리에 v_var2 변수를 넣어 ‘B’ 라는 값을 넘겨 줬음에도 불구하고 아무런 값도 없이 출력된 것을 확인하실 수 있습니다.
반대로, IN OUT 매개변수인 p_var3에는 ‘C’ 란 값을 넘겨 줬더니 프로시저 내부에서 ‘C’ 라는 값을 한 번 출력하고 다시 ‘B2’ 라는 값을 할당 받아서 최종적으로 v_var3 값은 ‘B2’ 가 된 것을 확인하실 수 있습니다.
이로써, IN OUT 매개변수에 대해서 알아 보았습니다.
감사합니다.^^
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 PL/SQL] PL/SQL 예외처리 하는 방법 (0) | 2019.11.30 |
---|---|
[오라클 PL/SQL] 프로시저 RETURN 문 사용하기 (0) | 2019.11.29 |
[오라클 PL/SQL] PL/SQL OUT 매개변수 (0) | 2019.11.27 |
[오라클 PL/SQL] PL/SQL 매개변수 디폴트 값 설정 하는 방법 (0) | 2019.11.26 |
[오라클 SQL] 오라클 숫차 체크 하는 방법 (0) | 2019.11.25 |
이 글을 공유하기