PROCEDURE

DONI·2022년 2월 28일
0

Oracle

목록 보기
19/22
post-thumbnail

🏹 프로시저 (PROCEDURE)

테이블에서 데이터를 추출해 조작하고
그 결과를 다른 테이블에 저장하거나, 갱신할 때 주로 사용
특정 로직을 처리하고 결과값은 반환하지 않음

  • 프로시저 실행
    EXECUTE(OR EXEC) 프로시저명;

  • 오라클 프로시저 버전 관리
    SELECT * FROM USER_SOURCE


🚩 소스코드1 - 매개변수 X

CREATE OR REPLACE PROCEDURE TEST_P1 
IS 
BEGIN 
	DELETE FROM TEST_T1;
    DELETE FROM TEST_T2;
    COMMIT;
END;
/

🚩 소스코드2 - 매개변수 O

CREATE OR REPLACE PROCEDURE TEST_P2 (P NUMBER)
IS 
BEGIN 
	DELETE FROM TEST_3 WHERE ID = P;
    COMMIT;
END;
/

🚩 소스코드3 - IN, OUT 매개변수

  • IN : 프로시저 내부에서 사용되는 변수
  • OUT : 프로시저 외부로 결과를 내보내는 용도의 변수
    바인드 변수를 활용하여 결과 확인
CREATE OR REPLACE PROCEDURE TEST_P3 (
    P_ID IN TEST_T4.ID%TYPE,
    P_NAME OUT TEST TEST_T4.NAME%TYPE, 
    P_PHONE OUT TEST TEST_T4.PHONE%TYPE, 
    P_ADDR OUT TEST TEST_T4.ADDR%TYPE)
IS 
BEGIN 
	SELECT NAME, PHONE, ADDR 
    INTO P_NAME, P_PHONE, P_ADDR 
    FROM TEST_T4
    WHERE ID = P_ID;
END;
/

-- 1) 바인드 변수 생성
VAR RESULT_NAME VARCAHR2(30);
VAR RESULT_PHONE VARCAHR2(50);
VAR RESULT_ADDR VARCAHR2(150);

-- 2) 해당 변수 값 출력
PRINT RESULT_NAME;
PRINT RESULT_PHONE;
PRINT RESULT_ADDR;

-- 3) 프로시저 실행 시 바인드 변수 값 자동 출력
SET AUTOPRINT ON;

-- 4) 프로시저 실행 (결과 값 바인드 변수에 대입)
EXEC TEST_P3 ('&ID', :RESULT_NAME, 
:RESULT_PHONE, :RESULT_ADDR);

🔎 바인드 변수

  • SQL문 실행 시 값을 전달하는 통로 역할을 하는 변수
  • PL/SQL 실행 후에도 액세스 가능
  • :변수명 형태로 참조 가능하며, PRINT 명령어를 이용해 출력
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글