DB/ORACLE

[ORACLE] VIRTUAL COLUMN(가상 열) 예제

울면서개발하기 2023. 7. 4. 09:18

[오라클]

1. 테이블 생성

CREATE TABLE BPLC_MNG(
    BPLC_CD VARCHAR2(10) NOT NULL,
    BPLC_NM VARCHAR2(500) NOT NULL,
    DELEG_NM VARCHAR2(500)
);
ALTER TABLE BPLC_MNG ADD CONSTRAINT BPLC_MNG_PK PRIMARY KEY (BPLC_CD);

COMMENT ON TABLE BPLC_MNG IS '사업장관리';
COMMENT ON COLUMN BPLC_MNG.BPLC_CD IS '사업장코드';              
COMMENT ON COLUMN BPLC_MNG.BPLC_NM IS '사업장명';
COMMENT ON COLUMN BPLC_MNG.DELEG_NM IS '대표자명';

 

2. VIRTUAL EXPR COLUMN 추가

-- 사업장명(대표자명)
ALTER TABLE BPLC_MNG ADD (BPLC_DELEG_NM VARCHAR2(4000) GENERATED ALWAYS AS (BPLC_NM || '(' || DELEG_NM || ')') VIRTUAL);

 

3. 데이터 확인

  BPLC_NM(사업장명)과 DELEG_NM(대표자명)의 컬럼 값에 따라 BPLC_DELEG_NM(사업자명(대표자명))이

  INSERT 하거나 UPDATE 상황에 자동반영 된다

  예)

    사업장명 : '쓰리코아'

    대표자명 : '여기호'

    ☞ '쓰리코아(여기호)'가 자동반영

 

4. 인덱스 추가

    가상열에도 인덱스를 추가 할 수 있다.

CREATE INDEX BPLC_MNG_BPLC_DELEG_NM_IDX ON BPLC_MNG (BPLC_DELEG_NM);