Oracle 스키마 변환(OracleToSQL)

Oracle에 연결하고, SQL Server에 연결하고, 프로젝트 및 데이터 매핑 옵션을 설정한 후에는 Oracle 데이터베이스 개체를 SQL Server 데이터베이스 개체로 변환할 수 있습니다.

변환 프로세스

데이터베이스 개체를 변환하면 Oracle에서 개체 정의를 가져와서 유사한 SQL Server 개체로 변환한 다음 이 정보를 SSMA 메타데이터로 로드합니다. SQL Server 인스턴스에 정보를 로드하지 않습니다. 그런 다음 SQL Server 메타데이터 탐색기를 사용하여 개체 및 해당 속성을 볼 수 있습니다.

변환하는 동안 SSMA는 출력 메시지를 출력 창에 출력하고 오류 메시지를 오류 목록 창에 출력합니다. 출력 및 오류 정보를 사용하여 원하는 변환 결과를 얻기 위해 Oracle 데이터베이스 또는 변환 프로세스를 수정해야 하는지 여부를 결정합니다.

변환 옵션 설정

개체를 변환하기 전에 프로젝트 설정 대화 상자에서 프로젝트 변환 옵션을 검토합니다. 이 대화 상자를 사용하여 SSMA가 함수 및 전역 변수를 변환하는 방법을 설정할 수 있습니다. 자세한 내용은 프로젝트 설정(변환)(OracleToSQL)을 참조하세요.

변환 결과

다음 표에서는 변환되는 Oracle 개체와 결과 SQL Server 개체를 보여 집니다.

Oracle 개체 결과 SQL Server 개체
함수 함수를 Transact-SQL 직접 변환할 수 있으면 SSMA에서 함수를 만듭니다.

경우에 따라 함수를 저장 프로시저로 변환해야 합니다. 이 경우 SSMA에서 저장 프로시저와 저장 프로시저를 호출하는 함수를 만듭니다.
프로시저 프로시저를 Transact-SQL로 직접 변환할 수 있으면 SSMA에서 저장 프로시저를 만듭니다.

경우에 따라 자동 트랜잭션에서 저장 프로시저를 호출해야 합니다. 이 경우 SSMA는 프로시저를 구현하는 저장 프로시저와 구현 중인 저장 프로시저를 호출하는 데 사용되는 다른 저장 프로시저 등 저장 프로시저 두 개를 만듭니다.
패키지 SSMA는 유사한 개체 이름으로 통합되는 저장 프로시저와 함수의 집합을 만듭니다.
시퀀스 SSMA는 시퀀스 개체(SQL Server 2012 또는 SQL Server 2014)를 만들거나 Oracle 시퀀스를 에뮬레이트합니다.
인덱스 및 트리거와 같은 종속 개체가 있는 테이블 SSMA는 종속 개체를 사용하여 테이블을 만듭니다.
트리거와 같은 종속 개체를 사용하여 보기 SSMA는 종속 개체를 사용하여 뷰를 만듭니다.
구체화된 뷰 SSMA는 몇 가지 예외를 제외하고 SQL Server에 인덱싱된 뷰를 만듭니다. 구체화된 뷰에 다음 구문이 하나 이상 포함되면 변환이 실패합니다.

사용자 정의 함수

SELECT, WHERE 또는 GROUP BY 절의 비결정적 필드/함수/식

SELECT*, WHERE 또는 GROUP BY 절에서 Float 열 사용(이전 문제의 특수한 경우)

사용자 지정 데이터 형식(중첩된 표 포함)

COUNT(고유 <필드>)

FETCH

OUTER 조인(LEFT, RIGHT 또는 FULL)

하위 쿼리, 기타 보기

OVER, RANK, LEAD, LOG

MIN, MAX

UNION, MINUS, INTERSECT

HAVING
트리거 SSMA는 다음 규칙에 따라 트리거를 만듭니다.

BEFORE 트리거는 INSTEAD OF 트리거로 변환됩니다.

AFTER 트리거는 AFTER 트리거로 변환됩니다.

INSTEAD OF 트리거는 INSTEAD OF 트리거로 변환됩니다. 같은 작업에 정의된 INSTEAD OF 트리거 여러 개가 트리거 하나로 결합됩니다.

행 수준 트리거는 커서를 통해 에뮬레이트됩니다.

복합 트리거는 INSTEAD OF 트리거로 변환됩니다. 여러 복합 트리거가 단일 트리거로 결합됨

연계 트리거는 개별 트리거 여로 개로 변환됩니다.
동의어 동의어는 다음 개체 형식에 생성됩니다.

테이블 및 개체 테이블

뷰 및 개체 뷰

저장 프로시저

함수

다음 개체의 동의어는 직접 개체 참조로 확인되고 대체됩니다.

시퀀스

패키지

Java 클래스 스키마 개체

사용자 정의 개체 형식

다른 동의어의 동의어는 마이그레이션할 수 없으며 오류로 표시됩니다.

구체화된 뷰에 대한 동의어는 만들어지지 않습니다.
사용자 정의 형식 SSMA는 사용자 정의 형식의 변환을 지원하지 않습니다. PL/SQL 프로그램의 사용을 포함하여 사용자 정의 형식은 다음 규칙에 따라 특별한 변환 오류로 표시됩니다.

사용자 정의 형식의 테이블 열이 VARCHAR(8000)로 변환됩니다.

저장 프로시저 또는 함수에 대한 사용자 정의 형식의 인수는 VARCHAR(8000)로 변환됩니다.

PL/SQL 블록의 사용자 정의 형식 변수는 VARCHAR(8000)로 변환됩니다.

개체 테이블은 표준 테이블로 변환됩니다.

개체 보기는 표준 보기로 변환됩니다.

Oracle 데이터베이스 개체 변환

Oracle 데이터베이스 개체를 변환하려면 먼저 변환할 개체를 선택한 다음 SSMA에서 변환을 수행하도록 합니다. 변환 중에 출력 메시지를 보려면 [보기] 메뉴에서 [출력]을 선택합니다.

Oracle 개체를 SQL Server 구문으로 변환하려면

  1. Oracle 메타데이터 탐색기에서 Oracle 서버를 확장한 다음 스키마를 확장 합니다.

  2. 변환할 개체를 선택합니다.

    • 모든 스키마를 변환하려면 스키마 옆의 확인란을 선택합니다.

    • 데이터베이스를 변환하거나 생략하려면 스키마 이름 옆에 있는 확인란을 선택합니다.

    • 개체 범주를 변환하거나 생략하려면 스키마를 확장한 다음 범주 옆의 확인란을 선택하거나 선택 취소합니다.

    • 개별 개체를 변환하거나 생략하려면 범주 폴더를 확장한 다음 개체 옆의 확인란을 선택하거나 선택 취소합니다.

  3. 선택한 모든 개체를 변환하려면 스키마를 마우스 오른쪽 단추로 클릭하고 스키마 변환을 선택합니다.

    개체 또는 해당 부모 폴더를 마우스 오른쪽 단추로 클릭한 다음 스키마 변환을 선택하여 개체의 개별 개체 또는 범주를 변환할 수도 있습니다.

변환 문제 보기

일부 Oracle 개체는 변환되지 않을 수 있습니다. 요약 변환 보고서를 확인하여 변환 성공률을 확인할 수 있습니다.

요약 보고서를 보려면

  1. Oracle 메타데이터 탐색기에서 스키마를 선택합니다.

  2. 오른쪽 창에서 보고서 탭을 선택합니다.

    이 보고서는 평가 또는 변환된 모든 데이터베이스 개체에 대한 요약 평가 보고서를 보여 줍니다. 개별 개체에 대한 요약 보고서를 볼 수도 있습니다.

    • 개별 스키마에 대한 보고서를 보려면 Oracle 메타데이터 탐색기에서 스키마를 선택합니다.

    • 개별 개체에 대한 보고서를 보려면 Oracle 메타데이터 탐색기에서 개체를 선택합니다. 변환 문제가 있는 개체에는 빨간색 오류 아이콘이 있습니다.

변환에 실패한 개체의 경우 변환 실패를 초래한 구문을 볼 수 있습니다.

개별 변환 문제를 보려면

  1. Oracle 메타데이터 탐색기에서 스키마를 확장 합니다.

  2. 빨간색 오류 아이콘을 표시하는 스키마를 확장합니다.

  3. 스키마 아래에서 빨간색 오류 아이콘이 있는 폴더를 확장합니다.

  4. 빨간색 오류 아이콘이 있는 개체를 선택합니다.

  5. 오른쪽 창에서 보고서 탭을 클릭합니다.

  6. 보고서 탭의 맨 위에는 드롭다운 목록이 있습니다. 목록에 통계가 표시되면 선택 영역을 원본으로 변경합니다.

    SSMA는 코드 바로 위에 소스 코드와 여러 단추를 표시합니다.

  7. 다음 문제 단추를 클릭합니다. 오른쪽을 가리키는 화살표가 있는 빨간색 오류 아이콘입니다.

    SSMA는 현재 개체에서 찾은 첫 번째 문제가 있는 소스 코드를 강조 표시합니다.

변환할 수 없는 각 항목에 대해 해당 개체로 수행할 작업을 결정해야 합니다.

  • SQL 탭에서 프로시저에 대한 소스 코드를 수정할 수 있습니다.

  • Oracle 데이터베이스의 개체를 수정하여 문제가 있는 코드를 제거하거나 수정할 수 있습니다. 업데이트된 코드를 SSMA에 로드하려면 메타데이터를 업데이트해야 합니다. 자세한 내용은 Oracle 데이터베이스에 연결(OracleToSQL)을 참조하세요.

  • 마이그레이션에서 개체를 제외할 수 있습니다. SQL Server 메타데이터 탐색기 및 Oracle 메타데이터 탐색기에서 개체를 SQL Server에 로드하고 Oracle에서 데이터를 마이그레이션하기 전에 항목 옆에 있는 확인란의 선택을 취소합니다.

다음 단계

마이그레이션 프로세스의 다음 단계는 변환된 개체를 SQL Server에 로드하는 것입니다.

참고 항목

Oracle 데이터베이스를 SQL Server로 마이그레이션(OracleToSQL)