

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Oracle에서 PostgreSQL로 변환 설정 이해
<a name="schema-conversion-oracle-postgresql"></a>

DMS Schema Conversion의 경우, Oracle에서 PostgreSQL로의 변환 설정에는 다음이 포함됩니다.
+ 생성형 AI를 사용하여 해당 데이터베이스 객체를 변환하려면 **생성형 AI** 설정을 활성화합니다. 생성형 AI를 사용하여 성공적으로 변환된 객체는 "이 변환은 데이터의 패턴을 기반으로 예측을 생성하는 기계 학습 모델을 사용합니다"라는 **작업 항목 5444**로 명확하게 식별됩니다. 자세한 내용은 [생성형 AI를 사용하여 데이터베이스 객체 변환](schema-conversion-convert.databaseobjects.md) 단원을 참조하십시오.
  + 최신 버전뿐만 아니라 지원되는 대상 데이터베이스의 다양한 버전에 대한 스키마를 변환할 수 있습니다. 버전을 지정하려면 **대상 엔진 버전** 설정을 사용합니다. 사용 가능한 변환 옵션은 선택한 엔진 버전에 따라 달라집니다. 현재 PostgreSQL 버전 14 및 15가 지원됩니다(설정이 동일함). 스키마 변환 중에이 설정에 지정된 버전과 다른 대상 엔진 버전을 사용하면 대상에 적용 작업을 수행할 때 호환성 문제와 오류가 발생할 수 있습니다.
+ AWS DMS 는 Oracle 구체화된 뷰를 PostgreSQL의 테이블 또는 구체화된 뷰로 변환할 수 있습니다. **구체화된 뷰의 경우**, 소스 구체화된 뷰를 변환하는 방법을 선택합니다.
+ 소스 Oracle 데이터베이스는 `ROWID` 의사 열을 사용할 수 있습니다. PostgreSQL에서는 유사한 기능을 지원하지 않습니다. DMS Schema Conversion은 `bigint` 또는 `character varying` 데이터 유형을 사용하여 변환된 코드로 `ROWID` 의사 열을 에뮬레이션할 수 있습니다. 이렇게 하려면 **bigint 데이터 유형 사용을 선택하여 ROWID 의사 열을 에뮬레이션**을 선택하거나 **행 ID**에 대해 **문자 가변 데이터 유형을 사용하여 ROWID 의사 열을 에뮬레이션**을 선택하세요.
  + 정밀도와 규모에 따라 NUMBER 데이터 형식을 가장 적합한 숫자 데이터 유형으로 변환하려면 NUMBER 데이터 유형의 열에 최적화된 데이터 유형 매핑 사용을 선택할 수 있습니다.
+ 소스 Oracle 코드에서 `ROWID` 의사 열을 사용하지 않는 경우, **생성 안 함**을 선택합니다. 이 경우, 변환된 코드는 더 빠르게 작동합니다.
+ 소스 Oracle 코드에는 PostgreSQL에서 지원하지 않는 파라미터가 있는 `TO_CHAR`, `TO_DATE`, `TO_NUMBER` 함수가 포함될 수 있습니다. 기본적으로 DMS Schema Conversion은 변환된 코드에서 이러한 파라미터의 사용을 에뮬레이션합니다.

  PostgreSQL에서 지원되지 않는 파라미터가 소스 Oracle 코드에 없는 경우, 기본 PostgreSQL `TO_CHAR`, `TO_DATE` 및 `TO_NUMBER` 함수를 사용할 수 있습니다. 이 경우, 변환된 코드는 더 빠르게 작동합니다. 이렇게 하려면 다음 값을 선택합니다.
  + **기본 PostgreSQL TO\$1CHAR 함수 사용**
  + **기본 PostgreSQL TO\$1DATE 함수 사용**
  + **기본 PostgreSQL TO\$1NUMBER 함수 사용**
+ 데이터베이스와 애플리케이션은 서로 다른 시간대에 실행할 수 있습니다. 기본적으로 DMS Schema Conversion은 변환된 코드로 시간대를 에뮬레이션합니다. 하지만 데이터베이스와 애플리케이션이 동일한 시간대를 사용하는 경우에는 이 에뮬레이션이 필요하지 않습니다. 이 경우, **데이터베이스와 애플리케이션이 동일한 시간대를 사용하는 경우 변환된 코드의 성능 개선**을 선택합니다.
+ 변환된 코드의 시퀀스를 계속 사용하려면 **변환된 시퀀스를 소스 측에서 생성된 마지막 값으로 채우기**를 선택합니다.
+ 경우에 따라 차이는 있겠지만 소스 Oracle 데이터베이스는 `NUMBER` 데이터 유형의 프라이머리 키 또는 외래 키 열에 정수 값만 저장할 수 있습니다. 이러한 경우는 이러한 열을 `BIGINT` 데이터 형식으로 변환할 수 AWS DMS 있습니다. 이 방식을 적용하면 변환된 코드의 성능이 향상됩니다. 이렇게 하려면 **NUMBER 데이터 유형의 프라이머리 키 및 외래 키 열을 BIGINT 데이터 유형으로 변환**을 선택합니다. 데이터 손실을 방지하려면 소스에서 이러한 열에 부동 소수점 값이 포함되지 않도록 해야 합니다.
+ 소스 코드에서 비활성화된 트리거와 제약 조건을 건너뛰려면 **활성 트리거 및 제약 조건만 변환**을 선택합니다.
+ DMS Schema Conversion을 사용하여 동적 SQL이라고 하는 문자열 변수를 변환할 수 있습니다. 데이터베이스 코드는 이러한 문자열 변수의 값을 변경할 수 있습니다. 가 AWS DMS 항상이 문자열 변수의 최신 값을 변환하도록 하려면 **호출된 루틴에서 생성된 동적 SQL 코드 변환을** 선택합니다.
+ PostgreSQL 버전 10 및 이전 버전은 프로시저를 지원하지 않습니다. PostgreSQL에서 프로시저를 사용하는 데 익숙하지 않은 경우는 Oracle 프로시저를 PostgreSQL 함수로 변환할 AWS DMS 수 있습니다. 이렇게 하려면 **프로시저를 함수로 변환**을 선택합니다.
+ 확장 팩에 특정 함수를 추가하면 발생한 작업 항목에 관한 추가 정보를 볼 수 있습니다. 이렇게 하려면 **사용자 정의 예외를 발생시키는 확장 팩 함수 추가**를 선택합니다. 그런 다음, 사용자 정의 예외가 발생하도록 심각도 수준을 선택합니다. 소스 데이터베이스 객체를 변환한 후에는 확장 팩 스키마를 적용해야 합니다. 확장 팩에 관한 자세한 내용은 [확장 팩 사용](extension-pack.md)을 참조하세요.
+ 소스 Oracle 데이터베이스에는 자동으로 생성된 이름과 함께 제약 조건이 포함될 수 있습니다. 소스 코드에서 이러한 이름을 사용하는 경우, **시스템 생성 제약 조건의 이름 유지**를 선택해야 합니다. 소스 코드에서 이러한 제약 조건을 사용하지만 이름을 사용하지 않는 경우 이 옵션을 선택 해제하여 변환 속도를 높이세요.
+ 소스 및 대상 데이터베이스가 서로 다른 시간대에서 실행되는 경우, `SYSDATE` 내장 Oracle 함수를 에뮬레이션하는 함수는 소스 함수와 비교해 다른 값을 반환합니다. 소스 함수와 대상 함수가 동일한 값을 반환하도록 하려면 **소스 데이터베이스의 시간대 설정**을 선택합니다.
+ orafce 확장의 함수를 변환된 코드에 사용할 수 있습니다. 이렇게 하려면 **Oracle 기본 제공 루틴**에서 사용할 함수를 선택하세요. orafce에 관한 자세한 내용은 GitHub에서 [orafce](https://github.com/orafce/orafce)를 참조하세요.