ORACLE/SQL2009. 2. 24. 10:54
반응형


서로다른 DB사이에 DB링크로 연결된 두개의 테이블을 SRC 테이블에서 TARGET테이블로 COPY하는 INSERT스크립트 생성 SQL

개념은 UNION ALL을 이용해서 명령어를 APPEND하는 방식

앞이나 뒤에 필요한 SQL COMMAND를 추가할 수 있다.

 

나중에 프로시져로 만들어야겠다.

---------------------------------------------------------------------------------------

SELECT 'DELETE ' || TNAME || ';' FROM TAB WHERE TNAME = '&nbsp'
UNION ALL
SELECT 'INSERT /*+ append PARALLEL*/ INTO   '|| TNAME || ' (' NAME FROM TAB WHERE TNAME = '&nbsp'
UNION ALL
SELECT NAME FROM (
 SELECT '          ' ||DECODE(COLUMN_ID,1,'',',')||COLUMN_NAME NAME
 FROM user_tab_columns T1
 WHERE 1=1
 AND TABLE_NAME = '&nbsp'
 ORDER BY T1.COLUMN_ID
)
UNION ALL
SELECT ')' NAME FROM DUAL
UNION ALL
SELECT 'SELECT ' NAME FROM DUAL
UNION ALL
SELECT NAME FROM (
 SELECT '          ' ||DECODE(COLUMN_ID,1,'',',')||COLUMN_NAME NAME
 FROM user_tab_columns T1
 WHERE 1=1
 AND TABLE_NAME = '&nbsp'
 ORDER BY T1.COLUMN_ID
)
UNION ALL
SELECT 'FROM  '|| TNAME || '@DIMS_REAL;' NAME FROM TAB WHERE TNAME = '&nbsp'
UNION ALL
SELECT 'COMMIT;' FROM DUAL


반응형
Posted by [PineTree]