'피노키오'에 해당되는 글 254건

  1. 2011.11.12 이사~~~ by pino93 (2)
  2. 2011.05.03 PK 컬럼 by pino93
  3. 2011.01.29 [INFORMATICA] Upsert 구현 - Update Strategy Transformation by pino93 (4)

이사~~~

분류없음 2011.11.12 01:45

http://blog.naver.com/pino93
Posted by pino93

PK 컬럼

DB/ETL/Oracle 2011.05.03 12:00
SELECT Y.COLUMN_NAME
FROM
ALL_CONSTRAINTS X, ALL_IND_COLUMNS Y
WHERE
        X.OWNER             = :OWNER_NAME
    AND X.CONSTRAINT_TYPE   = 'P'
    AND X.TABLE_NAME        = :TABLE_NAME
    AND X.TABLE_NAME        = Y.TABLE_NAME
    AND X.CONSTRAINT_NAME   = Y.INDEX_NAME
ORDER BY Y.COLUMN_POSITION   

'DB/ETL > Oracle' 카테고리의 다른 글

PK 컬럼  (0) 2011.05.03
[DB - Oracle] TableSpace 생성  (0) 2010.11.10
[Oracle] 동적쿼리를 받아서 커서 처리  (0) 2010.10.04
[ORACLE] REGEXP_SUBSTR, REGEXP_REPLACE  (0) 2010.09.28
[Oracle] Function, Procedure Grant...  (0) 2010.09.11
[Oracle] Procedure  (0) 2010.08.11
Posted by pino93
현재 산업은행의 IFRS 보고서 프로젝트에서
기존 InformETT를 Informatica로 전환하는 작업을 진행중인데
InformETT에서는 하나의 Job에서 Insert/Update 구현이 가능하다

물론 Informatica에서도 Update Strategy로 구현이 가능하지만
Oracle Procedure의 Merge기능처럼 Insert와 Update의 값을 다르게 구현할 수가 없다.

Informatica 에서 위 처럼 구현하기 위에서는 Source와 Target을 Join하여 해결하는 방법으로 처리했다.

이부분은 앞으로 Informatica에서 간단히 해결할 수 있는 Transformation이 나왔으면 한다





Target 테이블에 데이터 존재여부를 확인하기 위해 Target 테이블을 불러와 Outer Join을 한다








org_DEPTNO 가 Target 테이블의 Key 값이기 때문에 해당 값이 존재하다면 Update 를 해야하고
존재하지 않는다면 Insert를 해야한다
.

임시로 Insert시는 기존 DNAME값을 그대로 insert를 하고, Update시는 기존값에 "_UPDATE" 문자열을 추가했다


Update Strategy


Expression에서 out_Flag 에 INSERT 인지 UPDATE인지 여부를 넘겨받은 후
해당 값에 따라 INSERT/UPDATE를 구현한다
Posted by pino93