오라클 테이블을 MSSQL로 마이그레이션 하는 경우가 생길 수 있다.
이때 다음 쿼리를 사용하면 된다. 예를 들어서 MSSQL은 COLLATE Korean_Wansung_CS_AS, DATETIME2(0)를 사용한다고 하자.
다음 쿼리에 TBL_NM에 스키마를 복제할 오라클 테이블명을 적어주면 된다
SELECT
CASE A.COLUMN_ID WHEN 1 THEN ' '||A.COLUMN_NAME ELSE ','||A.COLUMN_NAME END COLUMN_NAME
, CASE WHEN A.DATA_TYPE = 'VARCHAR2' AND A.DATA_LENGTH = 8 AND A.COLUMN_NAME LIKE '%DT' THEN 'date'
WHEN A.DATA_TYPE = 'VARCHAR2' THEN 'varchar('||TO_CHAR(A.DATA_LENGTH)||') COLLATE Korean_Wansung_CS_AS'
WHEN A.DATA_TYPE = 'NUMBER' THEN 'decimal('||TO_CHAR(A.DATA_PRECISION)||','||A.DATA_SCALE||')'
WHEN A.DATA_TYPE = 'DATE' THEN 'datetime2(0)'
ELSE '?'
END DATA_TYPE
, CASE A.NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END NULLABLE
, A.*
FROM ALL_TAB_COLUMNS A
WHERE TABLE_NAME = 'TBL_NM'
ORDER BY COLUMN_ID;
이후에 ETL을 활용해서 데이터를 가져오는 방식으로 테이블 복사 완료^^
'Programming > MSSQL' 카테고리의 다른 글
MSSQL 파일그룹, 할당 용량, 현재 사용중인 용량, 사용 가능한 용량 조회 (0) | 2018.04.16 |
---|---|
MSSQL 테이블 인덱스, 인덱스 사이즈, row count 조회 (0) | 2018.04.16 |
MSSQL INDEX 조각화 정보 (DBA 관리용 시스템 프로시저) (0) | 2018.04.14 |
MSSQL OJBECT 보기 (DBA 관리용 시스템 프로시저) (0) | 2018.04.13 |
MSSQL 물리적 드라이브 가용량 보기 (DBA 관리용 시스템 프로시저) (0) | 2018.04.12 |