|
서로다른 DB사이에 DB링크로 연결된 두개의 테이블을 SRC 테이블에서 TARGET테이블로 COPY하는 INSERT스크립트 생성 SQL
개념은 UNION ALL을 이용해서 명령어를 APPEND하는 방식
앞이나 뒤에 필요한 SQL COMMAND를 추가할 수 있다.
나중에 프로시져로 만들어야겠다.
---------------------------------------------------------------------------------------
SELECT 'DELETE ' || TNAME || ';' FROM TAB WHERE TNAME = ' '
UNION
ALL
SELECT 'INSERT /*+ append PARALLEL*/ INTO '|| TNAME || ' (' NAME FROM
TAB WHERE TNAME = ' '
UNION ALL
SELECT NAME FROM (
SELECT
' ' ||DECODE(COLUMN_ID,1,'',',')||COLUMN_NAME NAME
FROM
user_tab_columns T1
WHERE 1=1
AND TABLE_NAME = ' '
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 =
' '
ORDER BY T1.COLUMN_ID
)
UNION ALL
SELECT 'FROM '||
TNAME || '@DIMS_REAL;' NAME FROM TAB WHERE TNAME = ' '
UNION
ALL
SELECT 'COMMIT;' FROM DUAL
[출처] 데이터 복사하기 위한 INSERT스크립트 생성|작성자 리원아빠
'ORACLE > SQL' 카테고리의 다른 글
다중 행(Multiple-Row) 서브쿼리 IN, NOT IN, ANY, ALL, EXISTS (0) | 2009.02.24 |
---|---|
Oracle 내부함수 (0) | 2009.02.24 |
TIMESTAMP -> DATE 변환 (0) | 2009.02.24 |
세로값을 가로로 출력 (0) | 2009.02.24 |
Oracle Join Update 시 /*+ bypass_ujvc */ 힌트사용 (0) | 2009.02.23 |