본문 바로가기

커맨드 명령

2.3.12 CREATE FUNCTION



저장 기능 생성


/* 문법 */
CREATE [OR REPLACE] FUNCTION function_name(parameters)
RETURN type IS | AS statement
 
/* 파라미터 */
function_name    -- 저장 기능 이름
parameters        -- 파라미터
type            -- 출력값의 형태
statement        -- 실행 문장
cs

저장 기능은 프로시저와 같은 기능을 가지고 있으나, 출력값이 있는 것이 특징이다.



◐저장 기능의 정의


/* 사용 예 */
CREATE FUNCTION func (aa IN NUMBER) RETURN VARCHAR2 IS
    return NUMBER(4);
    BEGIN
        SELECT MAX(a) INTO result FROM bar WHERE a=aa
        IF result IS NOT NULL THEN
         RETURN 'Found';
        ELSE
         RETURN 'Not Found';
        END IF;
    END;
cs
생성된 기능은 SELECT 문에서 자유로이 사용할 수 있다. 이 기능을 사용하면 복잡한 쿼리를
융통성있게 처리할 수 있다.


◐저장 기능의 호출


/* 사용 예 */
SELECT * FROM foo WHERE func(a) = 'Found'
cs




◐3단계 스키마

1. 외부 스키마 (External schema)

 - 각 사용자의 입장에서 본 데이터베이스 구조

 - 사용자마다 서로 다른 데이터베이스 스키마를 가짐

 - 개념 스키마에 대한 서브 스키마(subschema)


2. 개념 스키마(Conceptual schema)

 - 조직 전체의 입장에서 본 데이터베이스 구조

 - 한 개의 스키마만 존재하며, 서로 다른 사용자가 공유

 - 데이터 객체(개체, 관계), 제약 조건에 대한 명세를 유지


3. 내부 스키마(Internal schema)

 - 저장 장치의 입장에서 본 데이터베이스 구조

 - 각 데이터 객체의 저장 구조를 표현함

    - 내부 레코드의 형식

    - 인덱스의 유무

    - 저장 데이터 항목의 표현 방법




'커맨드 명령' 카테고리의 다른 글

2.3.14 CREATE TRIGGER  (0) 2018.11.18
2.3.13 DROP FUNCTION  (0) 2018.11.13
2.3.11 DROP PROCEDURE  (0) 2018.11.12
2.3.10 CREATE PROCEDURE [Oracle]  (0) 2018.11.12
2.3.9 CREATE PROCEDURE [SQL Server]  (0) 2018.11.12