본문 바로가기
IT/Oracle

[Oracle] - 오라클 PL/SQL 프로시저(procedure) IN, OUT 사용법

by 차이나는 개발자 2022. 7. 6.
728x90
반응형

#오라클 PL/SQL 프로시저(procedure) 사용법

-특정 처리 작업을 수행하는데 사용하는 저장 서브프로그램입니다.

 

 

#파라미터를 사용하지 않는 프로시저

CREATE OR REPLACE PROCEDURE 프로시저명
IS
	-- 선언부 
BEGIN
	-- 실행부
EXCEPTION 
	-- 예외 처리부
END;

 

-PROC라는 이름의 프로시저 생성 후 출력 결과 테스트

-디비버툴에서는 프로시저 지원안해주는지 SQL*PLUS에서 실행 : EXCUTE 프로시저명;

CREATE OR REPLACE PROCEDURE PROC
IS
V_EMPNO NUMBER(4) := 1234;
BEGIN
DBMS_OUTPUT.PUT_LINE('V_EMPNO : ' || V_EMPNO);
END;
/

 

-결과

 

 

-익명 블록에서 프로시저 실행

BEGIN
	프로시저명;
END;
/

 

-결과

V_EMPNO : 1234

 

 

#파라미터를 사용하는 프로시저(IN 모드 파라미터)

-프로시저 실행에 필요한 값을 직접 입력받는 형식의 파라미터 지정 방식입니다.

(IN은 default 값)

CREATE OR REPLACE PROCEDURE PROC_PARAMS
(
	param1 IN NUMBER,
	param2 NUMBER
)
IS

BEGIN
	DBMS_OUTPUT.PUT_LINE('param1: ' || param1);
	DBMS_OUTPUT.PUT_LINE('param2: ' || param2);
END;

 

-파라미터 넣어서 프로시저 실행

BEGIN 
	PROC_PARAMS(1,2);
END;

 

-결과

param1: 1
param2: 2

 

 

#파라미터를 사용하는 프로시저(OUT 모드 파라미터)

-프로시저 실행 후 호출한 프로그램으로 값을 반환 받을수 있는 방식입니다.

CREATE OR REPLACE PROCEDURE PROC_OUT
(
	param1 OUT NUMBER
)
IS
BEGIN
	SELECT DEPTNO INTO param1
	FROM DEPT
	WHERE DEPTNO = 10;
END PROC_OUT;

 

-PORC_OUT 프로시저 호출

DECLARE
	param1 NUMBER;
BEGIN
	PROC_OUT(param1);
	DBMS_OUTPUT.PUT_LINE('param1: ' || param1);
END;

 

-결과

param1: 10

 

 

#SQL*PLUS에서 SHOW ERRORS;로 프로시저 오류를 확인할 수 있다.

 

 

#USER_SOURCE 테이블을 조회하면 생성된 프로시저를 확인할 수 있습니다.

SELECT * FROM USER_SOURCE;

 

-결과

 

 

#프로시저 삭제하는 방법

DROP PROCEDURE PROC;

 

 

 

728x90
반응형

댓글