본문 바로가기
DB/ORACLE

ORACLE 프로시저의 기본 문법

by 애플 로그 2021. 10. 29.
반응형

ORACLE 프로시저의 기본 문법

 

set serveroutput on ; -- 출력 옵션으로 ON 한다.

 

CREATE [OR REPLACE]  PROCEDURE [프로시저 이름]
(
    // 변수 정의
    [ARGUMENT]  [MODE] NUMBER
    변수이름  IN 데이터타입, 
    변수이름 OUT 데이터타입
) IS
BEGIN
    기능 구현
END;

 

[OR REPLACE]  같은 이름의 프로시저가 존재하는 경우 기존의 프로시저 내용을 지우고 새로운 내용으로 재작성 합니다.

이문법은 주로 프로시저의 내용을 수정하는 경우에 사용함.

 

[ARGUMENT] 

프로시저가 호출되어 실행되는 운영체계로부터 프로시저내로 어떤값은 전달 할때나,

프로시저내에서 처리된 결과값은 운영체계로 다시 돌려줄때 사용하는 키워드

 

[MODE] 부분에는 IN 또는 OUT 이 들어 갈수 있는데

IN 은 운영체계에서 프로시저로 [OUT]은 프로시저에서 운영체계로 [IN OUT]은 2가지 목적으로 사용되는 인수를 의미 한다.

 

프로시저 예 )

key_head에 해당하는 key_seq를 증가 시켜 업데이트 하고

해당 키값을 생성해서 리턴하는 프로시저

 

CREATE OR REPLACE PROCEDURE p_makekey
(
    in_key_head      IN CHAR,
    out_key_id        OUT VARCHAR2
)
IS
BEGIN
    UPDATE key_creation
    SET key_seq = key_seq+1, updated_date = to_char(sysdate, 'YYYYMMDDHH24MISS')
    WHERE key_head = in_key_head;

    SELECT key_head || LPAD(TO_CHAR(key_seq), 10, '0')
    INTO out_key_id
    FROM key_creation
    WHERE key_head = in_key_head;
END;

 

 

댓글