2010. 9. 8. 18:52
  1. ERD를 물리모델로 변경한다.
  2. Database -> Pre & Post Scripts -> Model Level을 선택한다.
  3. New... 버튼을 클릭하여 생성할 스크립트명을 입력한다.
  4. 아래 코드를 입력한 후에 OK 버튼을 클릭한다.

 

  1. %ForEachTable() {
        COMMENT ON TABLE %TableName IS '%EntityName';
  2.     %ForEachColumn() {
            COMMENT ON COLUMN %TableNmae.%ColName IS '%AttName';
        }
    }

이 글은 스프링노트에서 작성되었습니다.

2010. 9. 8. 18:48
LOB 컬럼을 포함한 테이블 생성

 

  1. CREATE TABLE 테이블명 (
        일반컬럼명    VARCHAR2(255) NOT NULL,
        LOB컬럼명     CLOB NULL,
        CONSTRAINT PK인덱스명 PRIMARY KEY (일반컬럼명)
        USING INDEX TABLESPACE 인덱스테이블스페이스명
    )
    TABLESPACE 데이터테이블스페이스명
    LOB(LOB컬럼명) STORE AS LD_테이블명_CLOB
        (TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
            INDEX LI_테이블명_CLOB (TABLESPACE LOB인덱스테이블스페이스명))
    ;

 

LOB 컬럼 추가

 

  1. ALTER TABLE 테이블명  ADD (컬럼명 BLOB)
        LOB(컬럼명) STORE AS LD_테이블명_BLOB (TABLESPACE 데이터LOB테이블스페이스명
            INDEX LI_테이블명_BLOB (TABLESPACE 인덱스LOB테이블스페이스명))

 

LOB MOVE

 

- 인덱스 REBUILD 필요

  1. ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS (TABLESPACE 테이블스페이스명);
    ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS LD_테이블명_BLOB
      (TABLESPACE 데이터LOB테이블스페이스명
       INDEX LI_테이블명_BLOB (TABLESPACE 인덱스LOB테이블스페이스명));
    ALTER INDEX 인덱스명 REBUILD TABLESPACE 테이블스페이스명
      NOLOGGING PARALLEL(DEGREE 8);
    ALTER INDEX 인덱스명 LOGGING NOPARALLEL;

 

LOB Rename

 

- LOB DATA는  Rename됨
- LOB INDEX는 Rename되지 않음
- 인덱스 rebuild 필요

 

  1. ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS (TABLESPACE 테이블스페이스명);
    ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS LD_테이블명_BLOB
  2.     (TABLESPACE 데이터LOB테이블스페이스명
         INDEX LI_테이블명_BLOB (TABLESPACE 인덱스LOB테이블스페이스명));
    ALTER INDEX 인덱스명 REBUILD TABLESPACE 테이블스페이스명
  3.     NOLOGGING PARALLEL(DEGREE 8);
    ALTER INDEX 인덱스명 LOGGING NOPARALLEL;

 

LOB 을 포함한 파티션 테이블 생성

 
- LOB컬럼을 파티션키로 사용할 수 없다.

 

  1. CREATE TABLE 테이블명
    (
        일반컬럼명    VARCHAR2(8) NOT NULL,
        LOB컬럼명     BLOB NULL,
    )
    PARTITION BY RANGE(일반컬럼명)
    (
        PARTITION PT_테이블명_200803 VALUES LESS THAN ('20080399')
            TABLESPACE 데이터테이블스페이스명
            LOB(LOB컬럼명) STORE AS LD_PT_테이블명_200803_BLOB
                (TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
                 INDEX LI_PT_테이블명_200803_BLOB
  2.              (TABLESPACE LOB인덱스테이블스페이스명)),
        PARTITION PT_테이블명_200804 VALUES LESS THAN ('20080499')
            TABLESPACE 데이터테이블스페이스명
            LOB(LOB컬럼명) STORE AS LD_PT_테이블명_200804_BLOB
                (TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
                 INDEX LI_PT_테이블명_200804_BLOB
  3.              (TABLESPACE LOB인덱스테이블스페이스명)),
        PARTITION PT_테이블명_999999 VALUES LESS THAN ('99999999')
            TABLESPACE 데이터테이블스페이스명
            LOB(LOB컬럼명) STORE AS LD_PT_테이블명_999999_BLOB
                (TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
                 INDEX LI_PT_테이블명_999999_BLOB
  4.              (TABLESPACE LOB인덱스테이블스페이스명))
    );

 

LOB 을 포함한 파티션 테이블 SPLIT 

- 인덱스 rebuild 필요

 

  1. ALTER TABLE 테이블명 SPLIT PARTITION PT_테이블명_999999 AT ('20080599')
        INTO (PARTITION PT_테이블명_200805 TABLESPACE TS_GPDRM06 
                  LOB(LOB컬럼명) STORE AS LD_PT_테이블명_200806_BLOB
                      (TABLESPACE 데이터LOB테이블스페이스명 DISABLE STORAGE IN ROW
                       INDEX LI_PT_테이블명_200806_BLOB
  2.                    (TABLESPACE 인덱스LOB테이블스페이스명)),
              PARTITION PT_테이블명_999999 TABLESPACE 데이터테이블스페이스명
                  LOB(LOB컬럼명) STORE AS LD_PT_테이블명_999999_BLOB
                      (TABLESPACE 데이터LOB테이블스페이스명 DISABLE STORAGE IN ROW
                       INDEX LI_PT_테이블명_999999_BLOB
  3.                    (TABLESPACE 인덱스LOB테이블스페이스명))
             );

 

LOB SEGMENT 조회

  

  1. SELECT * FROM DBA_LOBS;
    SELECT * FROM DBA_SEGMENTS;

 

 

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2010. 9. 8. 18:46

함수 정리

Database/DB2 2010. 9. 8. 18:46
현재 날짜 및 시간

 

  1. CURRENT DATE      : 현재 날짜를 반환
    CURRENT TIME      : 현재 시간을 반환
    CURRENT TIMESTAMP : 현재

 

날짜 형식에서 특정 부분만 읽기

 

  1. YEAR(CURRENT TIMESTAMP)   : 현재  TIMESTAMP 의 '년도'를 반환
    MONTH(CURRENT TIMESTAMP)  : 현재  TIMESTAMP 의 '월'을 반환
    DAY(CURRENT TIMESTAMP)    : 현재  TIMESTAMP 의 '일'을 반환
    HOUR(CURRENT TIMESTAMP)   : 현재  TIMESTAMP 의 '시간'을 반환
    MINUTE(CURRENT TIMESTAMP) : 현재  TIMESTAMP 의 '분'을 반환
    SECOND(CURRENT TIMESTAMP) : 현재  TIMESTAMP 의 '초'를 반환

 

날짜 연산

 

  1. CURRENT DATE + 1 YEAR                         : 현재 날짜에 3년을 더함
    CURRENT DATE + 3 YEAR + 2 MONTH + 16 DAY      : 현재 날짜에 3년 2개월 16일을 더함
    CURRENT TIME + 5 HOUR + 20 MINUTE + 30 SECOND : 현재 시간에 5시간 20분 30초를 더함

 

형변환 (날짜타입 -> 문자열)

 

  1. CHAR(CURRENT DATE)      : YYYY-MM-DD
    CHAR(CURRENT TIME)      : HH24:MI:SS
    CHAR(CURRENT TIMESTAMP) : YYYY-MM-DD-HH24.MI.SS.MICRO_SECOND

 

형변환 (문자열 -> 날짜타입)

 

  1. TIMESTAMP('YYYY-MM-DD HH24:MI:SS')
    DATE('YYYY-MM-DD')
    TIME('HH24:MI:SS')

 

날짜 사이의 차이

 

  1. TIMESTAMPDIFF( <N>, CHAR(TIMESTAMP('YYYY-MM-DD-HH.MI.SS') - TIMESTAMP('YYYY-MM-DD-HH.MI.SS')))
  2. <N>옵션
  3. 1   : Fractions of second
    2   : Seconds
    4   : Minutes
    8   : Hours
    16  : Days
    32  : Weeks
    64  : Months
    128 : Quarters
    256 : Years

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'Database > DB2' 카테고리의 다른 글

테이블(컬럼) 조회  (0) 2010.09.08
Truncate Table  (0) 2010.09.08
RowNum  (0) 2010.09.08
Export/Import  (0) 2010.09.08
2010. 9. 8. 18:44
테이블 정보 조회

 

  1. SELECT * FROM SYSCAT.TABLES WITH UR;

 

컬럼 정보 조회

 

  1. SELECT * FROM SYSCAT.COLUMNS WITH UR;

이 글은 스프링노트에서 작성되었습니다.

'Database > DB2' 카테고리의 다른 글

함수 정리  (0) 2010.09.08
Truncate Table  (0) 2010.09.08
RowNum  (0) 2010.09.08
Export/Import  (0) 2010.09.08
2010. 9. 8. 18:44

Truncate Table

Database/DB2 2010. 9. 8. 18:44

 DB2의 경우에는 Truncate Table 기능이 없기 때문에 아래의 구문을 사용한다.

 

  1. ALTER TABLE YourTable ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;

이 글은 스프링노트에서 작성되었습니다.

'Database > DB2' 카테고리의 다른 글

함수 정리  (0) 2010.09.08
테이블(컬럼) 조회  (0) 2010.09.08
RowNum  (0) 2010.09.08
Export/Import  (0) 2010.09.08
2010. 9. 8. 18:42

RowNum

Database/DB2 2010. 9. 8. 18:42
  1. SELECT * 
  2.   FROM YUSER.TEMP_LOAN_DATA
  3.  FETCH FIRST 10 ROW ONLY

이 글은 스프링노트에서 작성되었습니다.

'Database > DB2' 카테고리의 다른 글

함수 정리  (0) 2010.09.08
테이블(컬럼) 조회  (0) 2010.09.08
Truncate Table  (0) 2010.09.08
Export/Import  (0) 2010.09.08
2010. 9. 8. 18:39

Export/Import

Database/DB2 2010. 9. 8. 18:39
Export

 

  1. db2 connect to ivsdb user yuser using `cat /dwedw/pwd/yuser_pwd.txt`
    db2 "export to /dwmallusr/yuser/data/yrg/af/YERT_CASH_FLOW_DETL_$4.txt of del MODIFIED BY NOCHARDEL STRIPLZEROS DECPLUSBLANK COLDEL, \
         messages /dwmallusr/yuser/log/yrg/af/YERT_CASH_FLOW_DETL_$4.exp  \
         SELECT *                         \
           FROM YUSER.YERT_CASH_FLOW_DETL \
          WHERE 1 = 1                     \
            AND DEAL_STND_DAY = '$4'      \
           WITH UR"

 

Import

 

  1. db2 import from import.file of ixf messages msg.imp insert into 테이블명

이 글은 스프링노트에서 작성되었습니다.

'Database > DB2' 카테고리의 다른 글

함수 정리  (0) 2010.09.08
테이블(컬럼) 조회  (0) 2010.09.08
Truncate Table  (0) 2010.09.08
RowNum  (0) 2010.09.08