프로시저란 Procedure (in oracle)
기능(작업단위)를 미리 만들어놓고 호출하여 사용하는것.
빠른 쿼리 실행
재사용성
프로시저 생성방법
1. 인수없는 경우
CREATE PROCEDURE 프로시저 이름
IS
[
변수이름 데이터타입; -- 프로시저 내에서 사용할 변수선언
변수이름 데이터타입;
변수이름 데이터타입;
.
.
]
BEGIN
기능구현;
END
;
2.인수있는경우
CREATE PROCEDURE 프로시저 이름(변수이름 IN 데이터타입, 변수이름 IN 데이터타입, ... )
IS
[
변수이름 데이터타입;
변수이름 데이터타입;
변수이름 데이터타입;
.
.
]
BEGIN
기능구현;
END
;
프로시저 호출방법
EXEC 프로시져 이름; --인수없는 경우.
EXEC 프로시져 이름(값,값...) --인수있는경우
ex) 메세지 출력 프로시저
CREATE PROCEDURE print_test
IS
BEGIN
dbms_output.put_line('Hello Oracle!');
END;
--call procedure
EXEC print_test;
ex) 인수로 아이디, 이름, 나이, 주소 입력받아 userlist 테이블에 INSERT 한 후 인수의 값들을 출력하는 프로시저 작성. (인수에 기본값 지정)
SELECT * FROM userlist;
CREATE OR REPLACE PROCECURE p_user_insert(
id IN userlist.id%TYPE := 'hena' ,
name IN userlist.name%TYPE DEFAULT '아무개',
age IN userlist.age%TYPE := 10,
addr IN userlist.addr%TYPE DEFAULT '서울'
)
IS
BEGIN
INSERT INTO userlist VALUES (id,name,age,addr);
dbms_output.put_line(' INSERT 정보는' || id || name || age || addr);
END;
--프로시저 실행
EXEC p_user_insert('hyesue12','이혜수',28,'서울');
EXEC p_user_insert('present','김지훈',28,'과천');
EXEC P_user_insert; --인수안넣으면 기본값으로 들어간다.
*저장된 프로시저 찾기
SELECT * FROM user_objects WHERE LOWER(object_type) = 'procedure';
'Back-end > DataBase' 카테고리의 다른 글
[DB][oracle] 함수 Function (0) | 2019.01.08 |
---|---|
[DB] 뷰 VIEW table (0) | 2019.01.08 |
[DB]프로시저를 이용한 데이터 입력 및 검증 (0) | 2018.07.05 |
[SQL]데이터 검증 - 중복 데이터 제거. (0) | 2018.07.01 |
Database - 정규화란? Normalization (0) | 2018.06.27 |