* 프로시저(PROCEDURE)
: 프로시저는 특정한 처리를 수행하는 PL/SQL 서브 프로그램이다. 함수와 마찬가지로 프로시저는 데이터베이스에 저장되어 있는 객체이며, 이러한 이유로 내장 프로시저(stored procedure)라고도 부른다. 프로시저 역시 파라미터들을 받아 특정 처리를 수행하기는 하지만, 함수와는 달리 값을 반환하지 않는다.
- 프로시저 실행
[생성 구문 형식] CREATE OR REPLACE PROCEDURE 프로시저명 ( 파라미터1 데이터타입 [ IN | OUT | INOUT ] , ... ) IS [AS] 변수 선언부..; BEGIN 프로시저 본문 처리..; EXCEPTION 예외처리..; END; / |
[프로시저 생성 예제] CREATE OR REPLACE PROCEDURE register_song ( T_NUM NUMBER, T_NAME VARCHAR2, T_DATE DATE, ) IS BEGIN insert into test_song(t_num, t_name, t_date) values ( T_NUM, T_NAME, T_DATE); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE( T_NUM || ' ' || T_NAME || ' ' register is failed!'); ROLLBACK; END; /
PROCEDURE register_song Compiled |
- 프로시저 실행
[실행 구문 형식] EXEC 혹은 EXECUTE 프로시저명 (파라미터...); |
[프로시저 실행 예제] EXECUTE register_song('1', 'test', '20140313');
anonymous block comleted |
- 프로시저 삭제
[삭제 구문 형식] DROP PROCEDURE 프로시저명; |
[참고] 프로시저 LOOP 문법 CREATE OR REPLACE PROCEDURE 프로시저이름 ( -- Exception 처리 (필요하면 추가) |
<프로시저 기본 예제> CREATE OR REPLACE PROCEDURE TEXT_PROC ( T_NUM IN NUMBER, -- NUMBER 타입의 입력받은 파라미터 OUT_DATA OUT SYS_REFCURSOR -- SELECT문 결과를 담을 커서(CURSOR) ) IS BEGIN OPEN OUT_DATA FOR -- 커서 열기 SELECT * FROM test_song WHERE t_num = T_NUM; -- 데이터 불러오는 쿼리문 (마지막에 세미콜론은 필수) END; / |
'개발 관련 지식 > 오라클(Oracle)' 카테고리의 다른 글
[오라클] SQL Loader 사용 방법 (0) | 2014.07.22 |
---|---|
[오라클] 트리거(TRIGGER) (0) | 2014.07.15 |
[오라클] 날짜 1년전, 한달 전, 하루 전 구하는 방법 (0) | 2014.07.08 |
[오라클] 오라클 인덱스 확인 쿼리문 (0) | 2014.07.08 |
[오라클] 오라클 9i 시작(Startup) & 종료(Shutdown) (0) | 2014.07.03 |