2) 파라미터 및 파라미터 모드
서브 프로그램 뒤에 선언되어, 호출 환경과 서브 프로그램 간에 데이터를 전달하는 것에 사용된다. 로컬 변수처럼 사용되지만, 파라미터 전달 모드에 따라서 달라진다.
파라미터 모드 |
설명 |
IN |
서브 프로그램에 제공 (기본값) |
OUT |
호출자에게 제공 |
IN OUT |
입력 값을 제공, 수정되어 리턴될 수 |
3) 프로시저 생성과 파라미터 모드에 따른 비교
다음은 IN과 OUT 파라미터를 모두 사용한 예제이다. query_emp 프로시저 안에 두 번째, 세 번째 argument에는 OUT 값을 Return 받을 변수명이 들어가야 한다. 만약 상수가 들어가면 에러가 발생한다.
CREATE OR REPLACE PROCEDURE query_emp(
p_id IN employees.employee_id%TYPE,
p_name OUT employees.last_name%TYPE,
p_salary OUT employees.salary%TYPE)
IS
BEGIN
SELECT last_name,
salary
INTO p_name,
p_salary
FROM employees
WHERE employee_id = p_id;
END query_emp;
/
SET SERVEROUTPUT ON
DECLARE
v_emp_name employees.last_name%TYPE;
v_emp_sal employees.salary%TYPE;
BEGIN
query_emp(171, v_emp_name, v_emp_sal);
DBMS_OUTPUT.PUT_LINE(v_emp_name||' earns '|| TO_CHAR(v_emp_sal, '$999,999.00'));
END;
/
'PL SQL' 카테고리의 다른 글
PL/SQL 프로시저(Procedure) - 4 (파라미터 작성 방법, DEFAULT 옵션) (0) | 2016.07.06 |
---|---|
PL/SQL 프로시저(Procedure) - 3 ( 프로시저 호출 방법 (EXECUTE, ), user_objects와 user_source ) (2) | 2016.07.06 |
PL/SQL 프로시저(Procedure) - 1 (정의와 Syntax) (0) | 2016.07.06 |
PL/SQL 예외 처리 (Exception Handling) - 5 (RAISE_APPLICATION_ERROR) (2) | 2016.07.06 |
PL/SQL 예외 처리 (Exception Handling) - 4 (사용자 정의 에러) (0) | 2016.07.06 |