8
1 사사사 사사 사사 사사 - 사사사사 사사 2012 년 10 년 08 년

사용자 정의 컬럼 복제 - 하이닉스 기준

  • Upload
    ull

  • View
    52

  • Download
    4

Embed Size (px)

DESCRIPTION

사용자 정의 컬럼 복제 - 하이닉스 기준. 2012 년 10 월 08 일. 요청사항. 1. I/U 구분코드 DELETE 구문은 기존과 동일하게 DELETE 처리 I/U 구분코드 컬럼에 ‘ INSERT ’ or ‘ UPDATE ’ 처리 I/U 구분코드 컬럼명과 컬럼 ID 는 설정이 가능해야함 (TX_DATE 처럼 COLID=1, 컬럼명 = ‘ TX_DATE ’ 한정되면 안됨… ) - PowerPoint PPT Presentation

Citation preview

Page 1: 사용자 정의  컬럼  복제 -  하이닉스  기준

1

사용자 정의 컬럼 복제- 하이닉스 기준

2012년 10월 08일

Page 2: 사용자 정의  컬럼  복제 -  하이닉스  기준

2

요청사항

1. I/U 구분코드

• DELETE 구문은 기존과 동일하게 DELETE 처리

• I/U 구분코드 컬럼에 ‘ INSERT’ or ‘UPDATE’ 처리

• I/U 구분코드 컬럼명과 컬럼 ID 는 설정이 가능해야함

(TX_DATE 처럼 COLID=1, 컬럼명 = ‘TX_DATE’ 한정되면 안됨… )

• 확장성을 고려하여 ‘ INSERT’, ‘UPDATE’ 값은 ‘ I’, ‘U’ 와 같이 설정에 따라 변경 가능해야함

• 추후 타 싸이트 요구사항 ( 삼성생명 , KLNET 이었나 ?) 을 고려하여 D 구분코드 처리도 추가 필요

 

2. 발생지 코드

• 어떤 테이블에서 발생된 데이터인지 식별이 가능한 구분코드

• I/U/D 와 마찬가지로 컬럼명 , COLID 는 설정 가능해야함

• 구분코드 값은 설정 가능해야 함

Page 3: 사용자 정의  컬럼  복제 -  하이닉스  기준

3

Catalog DB 추가1. NR_DICINFO_CT 테이블 추가

CREATE TABLE NRADMIN.NR_DICINFO_CT

(

GRP_CODE VARCHAR2(50 BYTE) NOT NULL,

POL_CODE VARCHAR2(30 BYTE) NOT NULL,

DIC_OBJID NUMBER NOT NULL,

DIC_TNAME VARCHAR2(30 BYTE),

DIC_OWNER VARCHAR2(50 BYTE),

DIC_COLNAME VARCHAR2(50 BYTE),

DIC_DATATYPE VARCHAR2(200 BYTE),

DIC_CODETYPE VARCHAR2(10 BYTE)

);

Page 4: 사용자 정의  컬럼  복제 -  하이닉스  기준

4

Catalog DB 추가2. NR_DICCODE 테이블 추가

CREATE TABLE NRADMIN.NR_DICCODE

(

DICCODE_TYPE VARCHAR2(10 BYTE) NOT NULL,

DICCODE_KEY VARCHAR2(50 BYTE) NOT NULL,

DICCODE_VALUE VARCHAR2(50 BYTE) NOT NULL,

DICCODE_DESC VARCHAR2(100 BYTE)

);

DICCODE_TYPE(NR_DICCODE) 은 DIC_CODETYPE(NR_DICINFO_CT) 과 JOIN 되며 ,

현재 두가지 유형을 지원한다 .

- OPCODE0001 (OPCODE****) : OPCODE(1,2,3) 를 KEY 로 하여 원하는 VALUE 를 적용한다 .

- OBJID0001 (OBJID****) : OBJID( 테이블 식별자 ) 를 KEY 로 하여 원하는 VALUE 를 적용한다 .

* “OPCODE” , “OBJID” NRCONS 에 추가해서 관리하는 것도 좋을 듯

* 파티션 테이블일 경우 모든 OBJID 에 대해서 NR_DICCODE 를 등록해 주어야 한다 .

Page 5: 사용자 정의  컬럼  복제 -  하이닉스  기준

5

수정 – DICINFO 모듈1. NR_DICINFO_CT 정보 SELECT

SELECT * ")

FROM NR_DICINFO_CT")

WHERE

POL_CODE =‘P101’

ORDER BY DIC_OWNER, DIC_TNAME, DIC_COLNAME;

2. NR_DICCODE 정보 SELECT

SELECT T2.DICCODE_TYPE, T2.DICCODE_KEY, T2.DICCODE_VALUE

FROM NR_DICINFO_CT T1, NR_DICCODE T2

WHERE

T1.DIC_CODEKEY = T2.DICCODE_KEY

AND T1.POL_CODE =‘P101’

GROUP BY T2.DICCODE_TYPE, T2.DICCODE_KEY, T2.DICCODE_VALUE;

Page 6: 사용자 정의  컬럼  복제 -  하이닉스  기준

6

수정 – DICINFO 모듈3. 관련 객체 생성

( Apply 에서 DICINFO 생성 시 다음 객체 정보를 추가 구성한다 .)

Hashtable<Long,Vector<NRDicColumnObject>> HT_DICINFO_CUSTOM

Hashtable<String, Hashtable<String, String>> HT_DICCODE

4. INSERT 구문 생성 시

커스텀 컬럼 (NR_DICINFO_CT) 이 존재한다면 존재하는 개수 만큼 SQL 구문 맨 앞에 추가하여 INSERT 구문 생성

- 커스텀 컬럼은 APMGR 에서 구문 생성 시 맨 앞에 위치 .

- 실제 타켓 테이블 컬럼 순서는 상관없음 .

Page 7: 사용자 정의  컬럼  복제 -  하이닉스  기준

7

수정 – APPLY 모듈1. UPDATE SET 구문 생성

커스텀 컬럼 (NR_DICINFO_CT) 이 존재한다면 존재하는 개수 만큼

UPDATE SET 절 SQL 구문 맨 앞에 추가 ( 추가컬럼 =?)

2. INSERT/UPDATE setString()

CODETYPE 이 OPCODE 로 시작되면 OPCODE 를 KEY 로 한 VALUE 값을 넣는다 .

CODETYPE 이 OBJID 로 시작되면 OBJID 를 KEY 로 한 VALUE 값을 넣는다 .

Page 8: 사용자 정의  컬럼  복제 -  하이닉스  기준

8

[ 예시 ] Catalog DB Setting1. NR_DICCINFO_CT

2. NR_DICCODE