반응형
매개변수 타입 | 설명 |
IN | 프로시저 안으로 호출 프로그램의 상수 값을 전달하는 매개변수를 선언하며 전달되는 값이 NULL일 경우 기본값(Default)을 설정할 수도 있음 |
OUT | 호출 프로그램으로 프로시저의 결과 값을 전달하는 매개변수 선언 |
IN OUT | 프로시저 안으로 호출 프로그램의 상수 값을 전달하고, 결과 값을 다시 호출 프로그램으로 전달하는 매개변수를 선언 |
IN 매개변수를 이용하여 입력받을 매개변수를 설정하고 해당 변수 이름으로 프로시저 내에서 사용하면 된다.
IN값에 아무 값도 입력되지 않으면(NULL)기본값 으로 설정된다.
OUT매개 변수는 프로시저를 실행하고 반환할 때 사용되는 변수 이름으로 IS절애서 별도의 선언없이 프로시저 내에서 해당 변수에 값을 입력하면 된다.
CREATE OR REPLACE PROCEDURE EMP_COUNT
(P_DEPTNO IN NUMBER DEFAULT 20, -- 입력변수
O_EMP_COUNT OUT NUMBER) --프로시저 출력 변수
IS
--커서 선언
CURSOR GET_EMP_DATA IS
SELECT COUNT(*)
FROM EMP
WHERE DEPTNO = P_DEPTNO;
I_COUNT NUMBER;
BEGIN
--커서오픈
OPEN GET_EMP_DATA;
--커서 FETCH
FETCH GET_EMP_DATA INTO I_COUNT;
--출력 변수에 값 입력
o_emp_count := i_count;
--커서 close
CLOSE GET_EMP_DATA;
END EMP_COUNT;
부서번호를 입력받아 부서 인원수를 반환하는 프로시저다,
P_DEPTNO는 입력 매개변수이므로 IN과 함께 NUMBER 데이터 타입으로 선언하였으며, 이 값이 NULL 이면 기본값인 20으로 설정되도록 했다.
전화 번호르 입력받아 문자를 제외하고 숫자만 리턴되도록 하는 구문이다
CREATE OR REPLACE PROCEDURE REPLACE_PHONE(P_PHONE IN OUT VARCHAR2)
IN
BEGIN
P_PHONE := REPLACE(P_PHONE,'-');
END REPLACE_PHONE;
반응형
'DB' 카테고리의 다른 글
Oracle PL/SQL 프로시저[커서] (0) | 2020.12.30 |
---|---|
Oracle PL/SQL 프로시저 [패키지] (0) | 2020.12.30 |
Oracle PL/SQL 프로시저 [데이터 타입 간 형 변환] (0) | 2020.12.29 |
Oracle PL/SQL 프로시저[커서와FOR문] (0) | 2020.12.28 |
Oracle PL/SQL 프로시저 [ 커서] (0) | 2020.12.27 |