오라클 프로시저, 함수
프로시저(procedure): 어떤 업무를 수행하기 위한 절차
프로시저 문법:
CREATE OR REPLACE PROCEDURE 프로시저 이름
( 매개변수명1 [ IN || OUT || INOUT ] 데이터타입, 매개변수명2 [ IN || OUT || INOUT ] 데이터타입 ... )
IS||AS 변수, 상수 등 선언 ( 선언부 )
BEGIN 실행 문장 ( 실행부 )
EXCEPTION 문장 --필수아님
END ;
프로시저 예제: 사번을 입력받아 급여를 인상하는 update_sal 프로시저
CREATE OR REPLACE PROCEDURE update_sal
( v_empno IN NUMBER )
IS
BEGIN
UPDATE emp SET sal = sal * 1.1 WHERE empno = v_empno;
END update_sal;
함수: 위 프로시저의 각 프로세스를 수행하기 위해 필요한 기능
함수 문법:
CREATE OR REPLACE FUNCTION 함수 이름
( 매개변수명1 매개변수1타입, 매개변수명2 매개변수2타입 ... )
RETURN 데이터타입
IS||AS 변수, 상수 등 선언 ( 선언부 )
BEGIN 실행 문장 ( 실행부 )
RETURN 반환값 --필수
EXCEPTION 문장 --필수아님
END ;
함수 예제: 날짜를 입력하면 YYYY-MM-DD 형태로 바꿔주는 함수
CREATE OR REPLACE FUNCTION testDate ( date Date )
RETURN VARCHAR2
IS changeDate VARCHAR2 ( 20 ) ;
BEGIN
changeDate := NULL ;
changeDate := TO_CHAR ( date, 'YYYY-MM-DD' ) ;
RETURN changeDate ;
END ;
함수와 프로시저의 차이:
출처: <https://mjn5027.tistory.com/47>
'공부 > 데이터베이스' 카테고리의 다른 글
[oracle] 오라클 PL/SQL 예외처리(Exception) (0) | 2022.10.25 |
---|---|
[oracle] 패키지 (0) | 2022.10.24 |
[ORACLE] 시퀀스 (0) | 2022.10.24 |
[데이터베이스] 오라클 CASE WHEN 표현식 (0) | 2022.06.15 |
[데이터베이스] mysql에서 text와 varchar의 차이 (0) | 2022.03.02 |