80 likes | 276 Views
사용자 정의 컬럼 복제 - 하이닉스 기준. 2012 년 10 월 08 일. 요청사항. 1. I/U 구분코드 DELETE 구문은 기존과 동일하게 DELETE 처리 I/U 구분코드 컬럼에 ‘ INSERT ’ or ‘ UPDATE ’ 처리 I/U 구분코드 컬럼명과 컬럼 ID 는 설정이 가능해야함 (TX_DATE 처럼 COLID=1, 컬럼명 = ‘ TX_DATE ’ 한정되면 안됨… )
E N D
사용자 정의 컬럼 복제 - 하이닉스 기준 2012년 10월 08일
요청사항 • 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 는설정가능해야함 • 구분코드 값은 설정 가능해야 함
Catalog DB 추가 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_CODETYPEVARCHAR2(10 BYTE) );
Catalog DB 추가 2. NR_DICCODE 테이블추가 CREATE TABLE NRADMIN.NR_DICCODE ( DICCODE_TYPE VARCHAR2(10 BYTE) NOT NULL, DICCODE_KEYVARCHAR2(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를 등록해 주어야 한다.
수정 – DICINFO 모듈 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;
수정 – 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에서 구문 생성 시 맨 앞에 위치. - 실제 타켓 테이블 컬럼 순서는 상관없음.
수정 – APPLY 모듈 UPDATE SET 구문 생성 커스텀컬럼(NR_DICINFO_CT)이 존재한다면 존재하는 개수 만큼 UPDATE SET절 SQL 구문 맨 앞에 추가 (추가컬럼=?) 2. INSERT/UPDATE setString() CODETYPE이 OPCODE 로 시작되면 OPCODE 를 KEY로한 VALUE 값을 넣는다. CODETYPE이 OBJID로 시작되면 OBJID를 KEY로 한 VALUE 값을 넣는다.
[예시] Catalog DB Setting 1. NR_DICCINFO_CT 2. NR_DICCODE