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
1
사용자 정의 컬럼 복제- 하이닉스 기준
2012년 10월 08일
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 는 설정 가능해야함
• 구분코드 값은 설정 가능해야 함
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)
);
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 를 등록해 주어야 한다 .
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;
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 에서 구문 생성 시 맨 앞에 위치 .
- 실제 타켓 테이블 컬럼 순서는 상관없음 .
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 값을 넣는다 .
8
[ 예시 ] Catalog DB Setting1. NR_DICCINFO_CT
2. NR_DICCODE