테이블에서 데이터를 추출해 조작하고
그 결과를 다른 테이블에 저장하거나, 갱신할 때 주로 사용
특정 로직을 처리하고 결과값은 반환하지 않음
프로시저 실행
EXECUTE(OR EXEC) 프로시저명;
오라클 프로시저 버전 관리
SELECT * FROM USER_SOURCE
CREATE OR REPLACE PROCEDURE TEST_P1
IS
BEGIN
DELETE FROM TEST_T1;
DELETE FROM TEST_T2;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE TEST_P2 (P NUMBER)
IS
BEGIN
DELETE FROM TEST_3 WHERE ID = P;
COMMIT;
END;
/
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);
🔎 바인드 변수
:변수명
형태로 참조 가능하며, PRINT 명령어를 이용해 출력