Database
[데이터베이스] PL/SQL 프로시저와 함수
vluevy
2021. 8. 21. 18:27
728x90
반응형
프로시저
- 자주 실행해야 하는 업무 흐름 SQL을 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행하는 것
- 특정 로직을 처리하지만 결과를 반환하지는 않음
- 프로시저 안에서 INSERT,UPDATE,DELETE를 수행할 경우 자동 커밋이 되지 않아 COMMIT; 구문을 추가해야함
-- 프로시저 정보 확인
USER_DEPENENCIES
USER_PROCEDURES
USER_SOURCE
-- 프로시저 생성
CREATE OR REPLACE PROCEDURE 프로시저이름
(parameter [IN|OUT|IN OUT] 데이터타입 [:= 디폴트값]
,(parameter [IN|OUT|IN OUT] 데이터타입 [:= 디폴트값]
IS
변수,상수 선언
BEGIN
실행구문
END 프로시저이름;
-- 프로시저 실행
EXEC 프로시저이름(매개변수값1,매개변수값2...);
-- 프로시저 삭제
ROP PROCEDURE 프로시저이름;
함수
- 프로시저는 특정 로직만을 처리하고 결과값 반환이 없지만 함수는 결과값을 리턴함
- 패키지 내에서 사용자 정의 함수는 중복정의가 가능
-- 사용자 정의 함수 정보 확인
USER_PROCEDURES
USER_SOURCE
-- 함수 생성
CREATE OR REPLACE FUNCTION 함수이름
parameter 데이터타입,
parameter 데이터타입...
RETURN EPDLXJXKDLQ
IS
변수, 상수 선언
BEGIN
실행구문
RETURN 반환값;
END 함수이름;
-- 함수 실행
함수이름(매개변수값1,매개변수값2)
-- 함수 삭제
DROP FUNCTION 함수이름;
반응형