프로젝트 설정(변환)(OracleToSQL)

프로젝트 설정 대화 상자의 변환 페이지에는 SSMA가 Oracle 구문을 SQL Server 구문으로 변환하는 방법을 사용자 지정하는 설정이 포함되어 있습니다.

변환 창은 프로젝트 설정 및 기본 프로젝트 설정 대화 상자에서 사용할 수 있습니다.

  • 모든 SSMA 프로젝트에 대한 설정을 지정하려면 도구 메뉴에서 기본 프로젝트 설정을 클릭하고 마이그레이션 대상 버전 드롭다운에서 설정을 보거나 변경해야 하는 마이그레이션 프로젝트 유형을 선택한 다음 왼쪽 창 아래쪽에서 일반을 클릭한 다음 변환을 클릭합니다.

  • 현재 프로젝트의 설정을 지정하려면 [도구] 메뉴에서 [프로젝트 설정]을 클릭한 다음 왼쪽 창 아래쪽에서 [일반]을 클릭한 다음 [변환]을 클릭합니다.

기본 제공 함수 및 제공된 패키지

용어 정의
COUNT 함수를 COUNT_BIG 변환 COUNT 함수가 2 31-1인 2,147,483,647보다 큰 값을 반환할 가능성이 있는 경우 함수를 COUNT_BIG변환해야 합니다.

예를 선택하면 SSMA는 모든 용도를 .로 COUNT 변환합니다COUNT_BIG.

아니요를 선택하면 함수는 다음과 같이 COUNT유지됩니다. 함수가 231-1보다 큰 값을 반환하는 경우 SQL Server에서 오류를 반환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/전체 모드:
낙관적 모드: 아니요
SUBSTR 함수 호출을 SUBSTRING 함수 호출로 변환 SSMA는 매개 변수 수에 따라 Oracle SUBSTR 함수 호출을 SQL Server substring 함수 호출로 변환할 수 있습니다. SSMA가 함수 호출을 SUBSTR 변환할 수 없거나 매개 변수 수가 지원되지 않는 경우 SSMA는 함수 호출을 사용자 지정 SSMA 함수 호출로 변환 SUBSTR 합니다.

예를 선택하면 SSMA는 세 개의 매개 변수를 사용하는 함수 호출을 SQL Serversubstring로 변환SUBSTR합니다. 다른 SUBSTR 함수는 사용자 지정 SSMA 함수를 호출하도록 변환됩니다.

아니요를 선택하면 SSMA는 함수 호출을 SUBSTR 사용자 지정 SSMA 함수 호출로 변환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드:
전체 모드: 아니요
TO_CHAR(date, format) 함수 호출 변환 SSMA는 Oracle TO_CHAR(date, format) 을 스키마의 ssma_oracle 프로시저로 변환할 수 있습니다.

TO_CHAR_DATE 함수 사용을 선택하면 SSMA는 변환을 TO_CHAR(date, format) 위해 영어를 사용하여 함수로 TO_CHAR_DATE 변환합니다.

TO_CHAR_DATE_LS 함수 사용(NLS care)을 선택하면 SSMA는 변환을 위해 세션 언어를 사용하여 함수로 TO_CHAR_DATE_LS 변환합니다TO_CHAR(date, format).

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: TO_CHAR_DATE 함수 사용
전체 모드: TO_CHAR_DATE_LS 함수 사용(NLS 관리)
DBMS_SQL 대한 오류를 생성합니다. 구문 분석 오류를 선택하면 변환 DBMS_SQL.PARSE시 SSMA에서 오류가 생성됩니다.

경고를 선택하면 변환 시 SSMA에서 경고가 DBMS_SQL.PARSE생성됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.
기본/낙관적/전체 모드: 오류
CONCAT 함수 호출에서 ISNULL 사용 ISNULL 문은 Oracle 동작을 에뮬레이트하기 위해 함수 호출에 CONCAT 사용됩니다. 이 설정에는 다음과 같은 옵션이 있습니다.



아니요

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요
전체 모드:
REPLACE 함수 호출에서 ISNULL 사용 ISNULL 문은 Oracle 동작을 에뮬레이트하기 위해 함수 호출에 REPLACE 사용됩니다. 이 설정에는 다음과 같은 옵션이 있습니다.



아니요

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요
전체 모드:
가능하면 네이티브 변환 함수 사용 예를 선택하면 가능하면 SSMA가 네이 TO_CHAR(date, format) 티브 변환 함수로 변환됩니다.

아니요를 선택하면 SSMA는 변환 또는 TO_CHAR_DATE_LS 변환(TO_CHAR(날짜, 형식) 옵션으로 정의됨)으로 TO_CHAR_DATE 변환 TO_CHAR(date, format) 합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드:
전체 모드: 아니요

변환 메시지

용어 정의
문제에 대한 메시지 생성 변환 중에 SSMA에서 정보 메시지를 생성하고 출력 창에 표시한 다음 변환된 코드에 추가할지 여부를 지정합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요
전체 모드: 아니요

기타 옵션

용어 정의
ROWNUM 식을 정수로 캐스팅 SSMA는 ROWNUM 식을 변환할 때 식을 절로 TOP 변환한 다음 식을 변환합니다. 다음 예제는 Oracle DELETE 문에 표시됩니다ROWNUM.

DELETE FROM Table1
WHERE ROWNUM < expression and Field1 >= 2

다음 예제에서는 결과 Transact-SQL을 보여줍니다.

DELETE TOP (expression-1)
FROM Table1
WHERE Field1>=2

TOP 절 식이 TOP 정수로 평가되어야 합니다. 정수가 음수이면 문이 오류를 생성합니다.

예를 선택하면 SSMA가 식을 정수로 캐스팅합니다.

아니요를 선택하면 SSMA는 모든 정수가 아닌 식을 변환된 코드의 오류로 표시합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/전체 모드: 아니요
낙관적 모드:
기본 스키마 매핑 이 설정은 Oracle 스키마가 SQL Server 스키마에 매핑되는 방법을 지정합니다. 이 설정에서는 다음 두 가지 옵션을 사용할 수 있습니다.

데이터베이스에 대한 스키마: 이 모드에서는 Oracle 스키마 sch1 가 기본적으로 SQL Server 데이터베이스sch1dbo SQL Server 스키마에 매핑됩니다.

스키마-스키마: 이 모드에서 Oracle 스키마 sch1 는 연결 대화 상자에 제공된 기본 SQL Server 데이터베이스의 SQL Server 스키마에 기본적으로 sch1 매핑됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 데이터베이스에 대한 스키마
ORDER BY 절에서 Oracle null 동작 에뮬레이트 NULL 값은 SQL Server 및 Oracle에서 다르게 정렬됩니다.

SQL Server NULL 에서 값은 순서가 지정된 목록에서 가장 낮은 값입니다. 오름차순 목록에서 값이 NULL 먼저 표시됩니다.

Oracle NULL 에서 값은 순서가 지정된 목록에서 가장 높은 값입니다. 기본적으로 값은 NULL 오름차순 목록에 마지막으로 표시됩니다.

Oracle에는 NULLS FIRST Oracle 주문 방식을 변경할 수 있는 절과 NULLS LAST 명령이 있습니다 NULL.

SSMA는 값을 확인하여 Oracle ORDER BY 동작을 에뮬레이트할 NULL 수 있습니다. 그런 다음 먼저 지정된 순서의 값으로 NULL 주문한 다음 다른 값으로 정렬합니다.

예를 선택하면 SSMA는 Oracle 동작을 에뮬레이트하는 방식으로 Oracle ORDER BY 문을 변환합니다.

아니요를 선택하면 SSMA는 Oracle 규칙을 무시하고 및 NULLS LAST 절이 NULLS FIRST 발견되면 오류 메시지를 생성합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요
전체 모드:
SELECT에서 행 개수 예외 에뮬레이트 INTO 절이 SELECT 있는 문이 행을 반환하지 않으면 Oracle에서 예외가 NO_DATA_FOUND 발생합니다. 문이 둘 이상의 행을 반환하면 예외가 TOO_MANY_ROWS 발생합니다. SQL Server의 변환된 문은 행 수가 하나와 다른 경우 예외를 발생하지 않습니다.

예를 선택하면 SSMA는 각 SELECT 문 뒤에 특수 db_error_exact_one_row_check 프로시저에 대한 호출을 추가합니다. 이 프로시저는 예외 및 TOO_MANY_ROWS 예외를 NO_DATA_FOUND 에뮬레이트합니다. 이는 기본값이며 가능한 한 가까운 Oracle 동작을 재현할 수 있습니다. 소스 코드에 이러한 오류를 처리하는 예외 처리기가 있는 경우 항상 예를 선택해야 합니다. 명령문이 SELECT 사용자 정의 함수 내에서 발생하는 경우 저장 프로시저 실행 및 예외 발생은 SQL Server 함수 컨텍스트와 호환되지 않으므로 이 모듈은 저장 프로시저로 변환됩니다.

아니요를 선택하면 예외가 생성되지 않습니다. SSMA가 사용자 정의 함수를 변환하고 SQL Server에서 함수로 유지하려는 경우에 유용할 수 있습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
수정 관리자 사용 사용하도록 설정하면 SSMA는 대상 T-SQL 코드에서 수정한 내용을 알아보고 유사한 패턴을 적용할 수 있는 다른 위치에서 잠재적인 코드 수정을 제안합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
상수 식 열 별칭 생성 목록의 식에 SELECT 별칭이 없는 경우 SSMA는 상수 별칭(예: expr1expr2)을 생성하거나 식 자체를 별칭으로 사용할 수 있습니다. 식이 꽤 길어질 수 있고 열 이름 길이가 제한되므로 이러한 별칭에 상수 기본 이름을 사용하는 것이 더 안전합니다. 더 안전한 옵션이지만 결과 데이터 세트에 대한 외부 종속성이 있을 수 있으므로 가능하지 않은 경우도 있습니다. 이러한 경우 Oracle의 동작과 유사하게 값 식에 따라 열의 이름을 지정할 수 있습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드:
전체 모드: 아니요
확장 속성 생략 사용하도록 설정하면 SSMA는 대상 데이터베이스에서 만든 개체에 확장 속성을 추가하지 않습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 아니요
오류 코드 번역 사용하도록 설정하면 매핑이 발견되면 대상 SQL Server 쪽의 오류 번호가 Oracle 오류 코드로 변환됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/전체 모드:
낙관적 모드: 아니요
형식 참조에 전체 형식 사양 사용 사용하도록 설정하면 SSMA는 루틴 매개 변수 및 반환 값에 대한 전체 형식 사양(소수 자릿수 및 정밀도 포함)을 준수합니다. Oracle은 일상적인 매개 변수에 대한 데이터 형식 인수를 허용하지 않지만, 예를 들어 특성이 사용되는 경우와 %ROWTYPE 같이 %TYPE 암시적으로 파생될 수 있는 경우가 있습니다. 이러한 경우 SSMA는 전체 형식 사양(정밀도 및 배율 포함)을 SQL Server로 변환할 때 사용할 수 있습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드:
전체 모드: 아니요
문자열 연결에 ISNULL 사용 문자열 연결에 값이 포함된 NULL 경우 Oracle 및 SQL Server는 서로 다른 결과를 반환합니다. Oracle은 NULL 값을 빈 문자 집합처럼 처리합니다. SQL Server는 .를 반환합니다 NULL.

예를 선택하면 SSMA는 Oracle 연결 문자(||)를 SQL Server 연결 문자(+)로 바꿉니다. 또한 SSMA는 연결의 양쪽에 있는 식을 확인하여 값을 확인 NULL 합니다.

아니요를 선택하면 SSMA는 연결 문자를 대체하지만 값을 확인하지 NULL 는 않습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

개체 변환

용어 정의
NULL이 아닌 열에서 SET NULL 참조 작업을 사용하여 외식 키 변환 Oracle을 사용하면 참조된 열에서 NULL이 허용되지 않으므로 작업을 수행할 수 없는 외래 키 제약 조건을 SET NULL 만들 수 있습니다. SQL Server는 이러한 외래 키 구성을 허용하지 않습니다.

예를 선택하면 SSMA는 Oracle에서와 같이 참조 작업을 생성하지만 SQL Server에 제약 조건을 로드하기 전에 수동으로 변경해야 합니다. 예를 들어 . 대신 SET NULL선택할 NO ACTION 수 있습니다.

아니요를 선택하면 제약 조건이 오류로 표시됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 아니요
하위 형식 변환 SSMA는 다음 두 가지 방법으로 PL/SQL 하위 형식을 변환할 수 있습니다.

예를 선택하면 SSMA는 하위 형식에서 SQL Server 사용자 정의 형식을 만들고 이 하위 형식의 각 변수에 사용합니다.

아니요를 선택하면 SSMA는 하위 형식의 모든 원본 선언을 기본 형식으로 대체하고 평소와 같이 결과를 변환합니다. 이 경우 SQL Server에 추가 형식이 만들어지지 않습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 아니요
동의어 변환 다음 Oracle 개체의 동의어는 SQL Server로 마이그레이션할 수 있습니다.

테이블 및 개체 테이블

뷰 및 개체 뷰

저장 프로시저 및 함수

구체화된 보기

다음 Oracle 개체의 동의어는 개체에 대한 직접 참조로 바꿀 수 있습니다.

시퀀스

패키지

Java 클래스 스키마 개체

사용자 정의 개체 형식

다른 동의어는 마이그레이션할 수 없습니다. SSMA는 동의어 및 동의어를 사용하는 모든 참조에 대한 오류 메시지를 생성합니다.

예를 선택하면 SSMA는 이전 목록에 따라 SQL Server 동의어 및 직접 개체 참조를 만듭니다.

아니요를 선택하면 SSMA는 여기에 나열된 모든 동의어에 대한 직접 개체 참조를 만듭니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
로컬 모듈 변환 Oracle 중첩 하위 프로그램(독립 실행형 저장 프로시저 또는 함수에서 선언됨) 변환의 형식을 정의합니다.

인라인을 선택하면 중첩된 하위 프로그래밍 호출이 본문으로 대체됩니다.

저장 프로시저를 선택하면 중첩된 하위 프로그래밍이 SQL Server 저장 프로시저로 변환되고 이 프로시저 호출 시 해당 호출이 바뀝니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 인라인

레코드 변환

용어 정의
레코드를 구분 변수 목록으로 변환 SSMA는 Oracle 레코드를 별도의 변수로 변환하고 특정 구조의 XML 변수로 변환할 수 있습니다.

예를 선택하면 SSMA는 가능한 경우 레코드를 별도의 변수 목록으로 변환합니다.

아니요를 선택하면 SSMA는 레코드를 특정 구조의 XML 변수로 변환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
SELECT 사용... SELECT를 변환할 때 FOR XML... 레코드 변수에 대한 INTO 레코드 변수로 선택할 때 XML 결과 집합을 생성할지 여부를 지정합니다.

예를 선택하면 SELECT 문이 XML을 반환합니다.

아니요를 선택하면 SELECT 문이 결과 집합을 반환합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 아니요

RETURNING 절 변환

용어 정의
DELETE 문의 RETURNING 절을 OUTPUT로 변환 Oracle은 RETURNING 삭제된 값을 즉시 가져오는 방법으로 절을 제공합니다. SQL Server는 절과 함께 OUTPUT 해당 기능을 제공합니다.

예를 선택하면 SSMA는 문의 절을 DELETE 절로 OUTPUT 변환RETURNING합니다. 테이블의 트리거는 값을 변경할 수 있으므로 반환된 값은 SQL Server에서 Oracle과 다를 수 있습니다.

아니요를 선택하면 SSMA는 문 앞에 DELETE 문을 생성 SELECT 하여 반환된 값을 검색합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
INSERT 문의 RETURNING 절을 OUTPUT로 변환 Oracle은 RETURNING 삽입된 값을 즉시 가져오는 방법으로 절을 제공합니다. SQL Server는 절과 함께 OUTPUT 해당 기능을 제공합니다.

예를 선택하면 SSMA는 문의 OUTPUTINSERTRETURNING .로 변환합니다. 테이블의 트리거는 값을 변경할 수 있으므로 반환된 값은 SQL Server에서 Oracle과 다를 수 있습니다.

아니요를 선택하면 SSMA는 참조 테이블에서 값을 삽입한 다음 선택하여 Oracle 기능을 에뮬레이트합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
UPDATE 문의 RETURNING 절을 OUTPUT으로 변환 Oracle은 업데이트된 RETURNING 값을 즉시 가져오는 방법으로 절을 제공합니다. SQL Server는 절과 함께 OUTPUT 해당 기능을 제공합니다.

예를 선택하면 SSMA는 문의 절을 UPDATE 절로 OUTPUT 변환RETURNING합니다. 테이블의 트리거는 값을 변경할 수 있으므로 반환된 값은 SQL Server에서 Oracle과 다를 수 있습니다.

아니요를 선택하면 SSMA는 문 뒤에 UPDATE SELECT 문을 생성하여 반환 값을 검색합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

ROWID 생성

용어 정의
ROWID 열 생성 SSMA는 SQL Server에서 테이블을 만들 때 ROWID 열을 만들 수 있습니다. 데이터가 마이그레이션되면 각 행은 함수에서 생성된 newid()UNIQUEIDENTIFIER 값을 가져옵니다.

예를ROWID 선택하면 열이 모든 테이블에 만들어지고 SQL Server는 GUID를 삽입 값으로 생성합니다. SSMA 테스터를 사용하려는 경우 항상 예를 선택합니다.

아니요를 선택하면 ROWID 열이 테이블에 추가되지 않습니다.

트리거가 있는 테이블에 대한 ROWID 열을 추가 ROWID 하면 트리거가 포함된 테이블에 추가됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 트리거가 있는 테이블에 대한 ROWID 열 추가

전체 모드:
ROWID 열에서 고유 인덱스 생성 SSMA가 생성된 열에서 ROWID 고유 인덱스 열을 생성할지 여부를 지정합니다. 옵션을 "YES"로 설정하면 고유 인덱스가 생성되고 "NO"로 설정된 경우 열에 고유 인덱스가 ROWID 생성되지 않습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

시퀀스 및 ID 변환

용어 정의
ID를 다음으로 변환 Oracle은 ID 열에 대한 여러 구성 옵션을 제공합니다. 이러한 옵션 중 일부는 SQL Server의 ID 기능에서 지원되지 않습니다.

이러한 옵션을 유지하는 방법은 ID를 시퀀스로 변환하는 것입니다.

시퀀스를 선택하면 Oracle ID 열이 더 이상 SQL ID 열로 변환되지 않습니다. 대신 시퀀스를 만들고 열에 대한 기본값을 생성하는 데 사용됩니다.

ID를 선택하면 Oracle ID 열이 SQL ID 열로 변환됩니다. 지원되지 않는 옵션은 변환되지 않습니다.

최적 맞춤을 선택하면 SSMA는 Oracle ID 열의 구성에 따라 가장 적합한 변환 방법(ID 또는 시퀀스)을 결정합니다.
시퀀스 생성기 변환 Oracle에서 시퀀스를 사용하여 고유 식별자를 생성할 수 있습니다.

SSMA는 시퀀스를 다음으로 변환할 수 있습니다.

SQL Server 시퀀스 생성기 사용.

SSMA 시퀀스 생성기 사용.

열 ID 사용.

기본 옵션은 SQL Server 시퀀스 생성기를 사용하는 것입니다. 그러나 SQL Server는 현재 시퀀스 값(예: Oracle 시퀀스 CURRVAL 메서드)을 가져오는 것을 지원하지 않습니다. Oracle 시퀀스 CURRVAL 메서드 마이그레이션에 대한 지침은 SSMA 팀 블로그 사이트를 참조하세요.

SSMA는 Oracle 시퀀스를 SSMA 시퀀스 에뮬레이터로 변환하는 옵션도 제공합니다. 2012년 이전의 SQL Server로 변환할 때 기본 옵션입니다.

마지막으로 테이블의 열에 할당된 시퀀스를 SQL Server ID 값으로 변환할 수도 있습니다. Oracle 테이블 탭의 ID 열에 대한 시퀀스 간 매핑을 지정해야 합니다.
CURRVAL 외부 트리거 변환 변환 시퀀스 생성기가 Using 열 ID설정된 경우에만 표시됩니다. Oracle 시퀀스는 테이블과 별개의 개체이므로 시퀀스를 사용하는 많은 테이블에서 트리거를 사용하여 새 시퀀스 값을 생성하고 삽입합니다. SSMA는 이러한 문을 주석 처리하거나 주석 처리 시 오류가 발생할 때 오류로 표시합니다.

예를 선택하면 SSMA는 변환된 시퀀스의 CURRVAL 외부 트리거에 대한 모든 참조를 경고와 함께 표시합니다.

아니요를 선택하면 SSMA는 변환된 시퀀스의 CURRVAL 외부 트리거에 대한 모든 참조를 오류로 표시합니다.

문 변환

용어 정의
MERGE 문의 변환 INSERT, UPDATE, DELETE 문 사용을 선택하면 SSMA는 MERGE 문을 , UPDATEDELETE 문으로 INSERT변환합니다.

MERGE 문 사용을 선택하면 SSMA는 문을 SQL Server의 문으로 MERGE 변환합니다MERGE.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: MERGE 문 사용
기본 인수를 사용하는 하위 프로그래밍으로 호출 변환 SQL Server 함수는 함수 호출에서 매개 변수 누락을 지원하지 않습니다. 또한 SQL Server 함수 및 프로시저는 식을 기본 매개 변수 값으로 지원하지 않습니다.

예를 선택하고 함수 호출에서 매개 변수를 생략하면 SSMA는 키워드 기본값을 함수에 삽입하고 올바른 위치에 호출합니다. 그런 다음 호출을 경고로 표시합니다.

아니요를 선택하면 SSMA는 함수 호출을 오류로 표시합니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
FORALL 문을 WHILE 문으로 변환 SSMA가 PL/SQL 컬렉션 요소에서 루프를 처리하는 FORALL 방법을 정의합니다.

예를 선택하면 SSMA는 컬렉션 요소가 하나씩 검색되는 루프를 만듭니다WHILE.

아니요를 선택하면 SSMA는 메서드를 사용하여 nodes() 컬렉션에서 행 집합을 생성하고 단일 테이블로 사용합니다. 이는 더 효율적이지만 출력 코드를 읽을 수 없게 만듭니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적 모드: 아니요
전체 모드:
함수 호출을 프로시저 호출로 변환 일부 Oracle 함수는 자율 트랜잭션으로 정의되거나 SQL Server에서 유효하지 않은 문을 포함합니다. 이러한 경우 SSMA는 프로시저와 프로시저의 래퍼인 함수를 만듭니다. 변환된 함수는 구현 프로시저를 호출합니다.

SSMA는 래퍼 함수에 대한 호출을 프로시저 호출로 변환할 수 있습니다. 이렇게 하면 더 읽기 쉬운 코드가 생성되고 성능이 향상될 수 있습니다. 그러나 컨텍스트에서 항상 허용하지는 않습니다. 예를 들어 목록의 함수 호출을 프로시저 호출 SELECT 로 바꿀 수 없습니다. SSMA에는 일반적인 사례를 다루는 몇 가지 옵션이 있습니다.

Always를 선택하면 SSMA가 래퍼 함수 호출을 프로시저 호출로 변환하려고 시도합니다. 현재 컨텍스트에서 이 변환을 허용하지 않으면 오류 메시지가 생성됩니다. 이렇게 하면 생성된 코드에 함수 호출이 남아 있지 않습니다.

가능하면 선택하면 SSMA는 함수에 출력 매개 변수가 있는 경우에만 프로시저 호출로 이동합니다. 이동할 수 없는 경우 매개 변수의 출력 특성이 제거됩니다. 다른 모든 경우에서 SSMA는 함수 호출을 남깁니다.

[안 됨]을 선택하면 SSMA는 모든 함수 호출을 함수 호출로 그대로 둡니다. 경우에 따라 성능상의 이유로 이 선택이 허용되지 않을 수 있습니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드: 가능한 경우
LOCK TABLE 문 변환 SSMA는 많은 LOCK TABLE 문을 테이블 힌트로 변환할 수 있습니다. SSMA는 , , SUBPARTITION@dblinkNOWAIT 절을 포함하는 PARTITION문을 변환 LOCK TABLE 할 수 없으며 이러한 문을 변환 오류 메시지로 표시합니다.

예를 선택하면 SSMA는 지원되는 LOCK TABLE 문을 테이블 힌트로 변환합니다.

아니요를 선택하면 SSMA는 모든 LOCK TABLE 문을 변환 오류 메시지로 표시합니다.

다음 표에서는 SSMA가 Oracle 잠금 모드를 변환하는 방법을 보여 줍니다.

Oracle 잠금 모드

ROW SHARE
ROW EXCLUSIVE
SHARE UPDATE = ROW SHARE
SHARE
SHARE
EXCLUSIVE

SQL Server 테이블 힌트

ROWLOCK, HOLDLOCK
ROWLOCK, XLOCK, HOLDLOCK
ROWLOCK, HOLDLOCK
TABLOCK, HOLDLOCK
TABLOCK, XLOCK, HOLDLOCK
TABLOCKX, HOLDLOCK

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
REF CURSOR OUT 매개 변수에 대한 OPEN-FOR 문 변환 Oracle에서 이 OPEN .. FOR 문을 사용하여 결과 집합을 하위 프로그래밍의 OUT 형식 매개 변수로 반환할 수 있습니다 REF CURSOR. SQL Server에서 저장 프로시저는 문의 결과를 SELECT 직접 반환합니다.

SSMA는 많은 OPEN .. FOR 문을 문으로 변환할 SELECT 수 있습니다.

예를 선택하면 SSMA는 OPEN .. FOR 문을 문으로 SELECT 변환하여 결과 집합을 클라이언트로 반환합니다.

아니요를 선택하면 변환된 코드와 출력 창에 오류 메시지가 생성됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:
트랜잭션 처리 문 변환 SSMA는 Oracle 트랜잭션 처리 문을 변환할 수 있습니다.

예를 선택하면 SSMA는 Oracle 트랜잭션 처리 문을 SQL Server 문으로 변환합니다.

아니요를 선택하면 SSMA는 트랜잭션 처리 문을 변환 오류로 표시합니다.

참고: Oracle은 트랜잭션을 암시적으로 엽니다. SQL Server에서 이 동작을 에뮬레이트하려면 트랜잭션을 시작할 위치에 문을 수동으로 추가 BEGIN TRANSACTION 해야 합니다. 또는 세션의 시작 부분에서 명령을 실행할 SET IMPLICIT_TRANSACTIONS ON 수 있습니다. SSMA는 자율 트랜잭션을 사용하여 서브루틴을 변환할 때 자동으로 추가 SET IMPLICIT_TRANSACTIONS ON 됩니다.

모드 상자에서 변환 모드를 선택하면 SSMA는 다음 설정을 적용합니다.

기본/낙관적/전체 모드:

참고 항목

사용자 인터페이스 참조(OracleToSQL)