翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Oracle から PostgreSQL へのコンバージョン設定
ソースが Oracle で、ターゲットが Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL の場合、次の設定が適用されます。これらの設定は、 AWS Management Console または ModifyConversionConfiguration API オペレーションを使用して設定できます。
このトピックでは、Oracle から PostgreSQL への変換パスに固有の設定について説明します。これらの設定に加えて、DMS Schema Conversion は、変換された SQL のアクション項目コメントの重要度レベルや変換に生成 AI を使用するオプションなど、すべてのソースとターゲットのペアに適用される設定を提供します。これらの設定については、「」を参照してください一般的な変換設定。
API または CLI AWS を使用する場合は、セクション名 ORACLE_TO_POSTGRESQL、、ORACLE_TO_POSTGRESQL_14または で変換パス設定を指定しますORACLE_TO_POSTGRESQL_15。3 つのバージョン管理されたセクションはすべて同じキーを受け入れます。プロジェクトが使用するセクション名を確認するには、最初に DescribeConversionConfiguration を呼び出し、レスポンスに含まれるセクションのみを更新します。
各設定には、 AWS Management Console ラベルの後に API および AWS CLI パラメータ名が括弧内に表示されます。API または CLI で設定を構成するときは、 AWS パラメータ名を使用します。設定は、 に表示されるのと同じ順序で一覧表示されます AWS Management Console。
- ターゲットエンジンバージョン (
ORACLE_TO_POSTGRESQL_target_engine_version) -
ターゲットデータベースのエンジンバージョンを選択します。この設定は、DMS Schema Conversion が変換の対象となる PostgreSQL メジャーバージョン機能セットであり、DMS Schema Conversion が適用されるバージョン設定セクション (
ORACLE_TO_POSTGRESQL_14または ) を決定しますORACLE_TO_POSTGRESQL_15。値は PostgreSQL 15 以降のバージョンの15機能を14ターゲットとし、PostgreSQL 14 の機能を対象としているため、ターゲットデータベースは選択した値 (PostgreSQL 16 ターゲット15の の値など) よりも後のバージョンを実行できます。このページの他の設定とは異なり、この設定は変換パスセクションに保存されません。代わりに、次の例に示すように、最上位Conversion versionセクションに保存されます。{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }タイプ: 文字列 (
14|15)デフォルト:
15 - マテリアライズドビュー (
MaterializedViewConvert) -
DMS Schema Conversion がターゲットの Oracle マテリアライズドビューを変換する方法を指定します。
API/CLI 値 ターゲットの結果 TABLEDMS Schema Conversion は、同じ列を持つ通常のテーブルを作成します。これは、更新を手動で管理する場合やレプリケーションツールで管理する場合に使用します。 MATERIALIZED_VIEWDMS Schema Conversion は PostgreSQL を作成します MATERIALIZED VIEW。ターゲットが をサポートしている場合に使用しますREFRESH MATERIALIZED VIEW。タイプ: 文字列 (
TABLE|MATERIALIZED_VIEW)デフォルト:
TABLE - 行 ID の生成 (
GenerateRowId) -
ソースの Oracle データベースでは、
ROWID疑似列を使用できるが、PostgreSQL は同様の機能をサポートしていない。この設定では、DMS Schema Conversion が変換されたコードのROWID擬似列をエミュレートするかどうか、および DMS Schema Conversion がエミュレーションに使用するデータ型を指定します。コンソールラベル API/CLI 値 動作 生成しない falseDMS Schema Conversion ROWIDは擬似列をエミュレートせず、参照をアクション項目として残します。ソース Oracle コードが を使用しない場合に使用しますROWID。変換されたコードはより速く実行されます。bigint データ型を使用して ROWID 擬似列をエミュレートする trueDMS Schema Conversion は、 bigintデータ型を使用して、変換されたコードのROWID擬似列をエミュレートします。ROWID 擬似列をエミュレートするには、文字が異なるデータ型を使用します。 GENERATE_AS_CHARACTER_DOMAIN_TYPEDMS Schema Conversion は、 character varyingデータ型を使用して、変換されたコードのROWID擬似列をエミュレートします。タイプ: 文字列 (列挙型)
デフォルト:
false
コード
ソース Oracle コードに固有の変換設定を選択します。
- NUMBER データ型の列に最適化されたデータ型マッピングを使用する (
UseOptimizedMappingForNumberConversion) -
DMS Schema Conversion が、精度とスケールに基づいて、各 Oracle
NUMBER列を最適な数値データ型にマッピングするかどうかを指定します。-
true— DMS Schema Conversion はSMALLINT、精度とスケールに基づいて、各NUMBER列を最も具体的な PostgreSQL 数値型 (、INTEGER、 などBIGINT) にマッピングします。 -
false— DMS Schema Conversion は、すべてのNUMBER列を にマッピングしますNUMERIC。
タイプ: ブール値 (
true|false)デフォルト:
true -
- ネイティブ PostgreSQL TO_CHAR 関数を使用する (
ToCharFunctionOracle) -
DMS Schema Conversion が変換されたコードで Oracle
TO_CHAR関数をエミュレートするかどうかを指定します。-
false— DMS Schema Conversion は、変換されたコードで OracleTO_CHARの動作をエミュレートします。 -
true— DMS Schema Conversion は、TO_CHARおよびTO_NCHAR呼び出しをネイティブ PostgreSQLTO_CHAR関数に変換します。形式文字列が PostgreSQL と互換性があるときにエミュレーションされないようにするには、これを選択します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- ネイティブ PostgreSQL TO_DATE 関数を使用する (
ToDateFunctionOracle) -
DMS Schema Conversion が変換されたコードで Oracle
TO_DATE関数をエミュレートするかどうかを指定します。-
false— DMS Schema Conversion は、変換されたコードで OracleTO_DATEの動作をエミュレートします。 -
true— DMS Schema Conversion は、TO_DATE呼び出しをネイティブ PostgreSQLTO_DATE関数に変換します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- ネイティブ PostgreSQL TO_NUMBER 関数を使用する (
ToNumber) -
DMS Schema Conversion が変換されたコードで Oracle
TO_NUMBER関数をエミュレートするかどうかを指定します。-
false— DMS Schema Conversion は、変換されたコードで OracleTO_NUMBERの動作をエミュレートします。 -
true— DMS Schema Conversion は、TO_NUMBER呼び出しをネイティブ PostgreSQLTO_NUMBER関数に変換します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- データベースとアプリケーションが同じタイムゾーンを使用する変換されたコードのパフォーマンスを向上させる (
ToTimeZone) -
DMS Schema Conversion が変換されたコードのタイムゾーンをエミュレートするかどうかを指定します。
-
true— DMS Schema Conversion はタイムゾーンをエミュレートしません。これは、データベースとアプリケーションが同じタイムゾーンを使用している場合に使用します。変換されたコードはより速く実行されます。 -
false— DMS Schema Conversion は、変換されたコードのタイムゾーンをエミュレートします。
タイプ: ブール値 (
true|false)デフォルト:
false -
- 変換されたシーケンスにソース側で生成された最後の値を入力します (
AlertSequenceRestart) -
DMS Schema Conversion がソースで生成された最後の値から変換されたシーケンスを継続するかどうかを指定します。
-
true— DMS Schema Conversion は、変換された各シーケンスをソースで生成された最後の値から開始するように設定するため、シーケンスは競合することなく続行します。 -
false— DMS Schema Conversion は、変換されたシーケンスをデフォルトの初期値から開始します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- NUMBER データ型のプライマリキー列と外部キー列を BIGINT データ型に変換する (
ConvertNumberToBigint) -
DMS Schema Conversion が
NUMBERデータ型のプライマリキー列と外部キー列を に変換するかどうかを指定しますBIGINT。ソースデータベースがこれらの列に浮動小数点数を保存する場合、データ損失を避けるために注意してください。-
true— DMS Schema Conversion は、プライマリキー列と外部キーNUMBER列を にマッピングしますBIGINT。 -
false— DMS Schema Conversion は、これらの列に標準の数値マッピングを使用します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- アクティブなトリガーと制約のみを変換する (
IgnoreDisabledTriggersConstraints) -
DMS Schema Conversion が変換中に非アクティブ化されたトリガーと制約をスキップするかどうかを指定します。
-
true— DMS Schema Conversion は、アクティブなトリガーと制約のみを変換し、非アクティブ化されたトリガーと制約をスキップします。 -
false— DMS Schema Conversion は、非アクティブ化されたトリガーを含むすべてのトリガーと制約を変換します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- 呼び出されたルーチンで作成された動的 SQL コードを変換する (
ConvertOutputAsDynamic) -
DMS Schema Conversion が、ルーチン外で参照される文字列変数を動的 SQL として変換するかどうかを指定します。
-
true— DMS Schema Conversion は、ルーチン外で参照される文字列変数を動的 SQL として変換します。 -
false— DMS Schema Conversion は、これらの文字列変数を動的 SQL として変換しません。
タイプ: ブール値 (
true|false)デフォルト:
false -
- プロシージャを関数に変換する (
ConvertProceduresToFunction) -
DMS Schema Conversion が Oracle ストアドプロシージャを PostgreSQL void 関数に変換するかどうかを指定します。
-
true— DMS Schema Conversion は Oracle ストアドプロシージャを PostgreSQL void 関数に変換します。 -
false— DMS Schema Conversion は Oracle ストアドプロシージャを PostgreSQL プロシージャに変換します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- システム生成の制約の名前を保持する (
ConvertSysConstraintNamesUsingOriginal) -
DMS Schema Conversion が Oracle システムが生成した元の制約名をターゲットに保持するかどうかを指定します。このオプションは、ソース Oracle コードがシステム生成の制約名を使用してターゲットデータベースに同じ名前の制約を作成する場合に使用します。
-
true— DMS Schema Conversion は、Oracle システムが生成した元の制約名をターゲットに保持します。 -
false— DMS Schema Conversion は新しい制約名を生成します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- ソースデータベースのタイムゾーンを設定する (
UseDefaultTimeZoneForSysdateEmulation) -
Oracle 関数をエミュレートする
SYSDATE関数が のタイムゾーンを使用するかどうかを指定しDefaultTimeZoneForSysdateEmulation、変換されたコードがソースデータベースと同じ値を返すようにします。-
true— DMS Schema Conversion は、SYSDATEエミュレーションDefaultTimeZoneForSysdateEmulationに で指定されたタイムゾーンを使用します。 -
false— DMS Schema Conversion は、SYSDATEエミュレーションにデフォルトのタイムゾーンを使用します。
タイプ: ブール値 (
true|false)デフォルト:
false -
DefaultTimeZoneForSysdateEmulation-
でエミュレーションが有効になっているときに DMS Schema Conversion
SYSDATEが使用するタイムゾーンUseDefaultTimeZoneForSysdateEmulation。、、UTCAmerica/New_Yorkなどの有効な IANA タイムゾーン名を指定しますEurope/Berlin。が の場合UseDefaultTimeZoneForSysdateEmulation、この値は効果がありませんfalse。タイプ: 文字列 (IANA タイムゾーン名)
デフォルト:
UTC
注記
には、プロシージャを関数に変換し、システム生成の制約の名前を保持する間に、ユーザー定義の例外を発生させる拡張パック関数を追加するという追加オプションが AWS Management Console 一覧表示されます。このオプションは でのみ設定 AWS Management Console され、API または CLI AWS では使用できません。関連する重要度レベルの動作は、ShowSeverityLevelInSql共通設定によって制御されます。詳細については、「一般的な変換設定」を参照してください。
Orafce 組み込みルーチン
変換されたコードで使用する Orafce 組み込みルーチンを選択します。Orafce は、Oracle 組み込み関数と互換性のあるルーチンを提供する PostgreSQL 拡張機能です。各ルーチンには専用のブール設定があります。ルーチンを に設定するとtrue、DMS Schema Conversion は一致する Oracle 組み込み関数を Orafce ルーチンに変換します。に設定するとfalse、DMS Schema Conversion は関数を手動レビューのアクション項目として残します。これらのルーチンを使用するには、orafce 拡張機能がターゲットデータベースで使用可能である必要があります。これらのルーチンはすべてデフォルトで になりますfalse。使用時の関数の動作が Orafce ルーチンと互換性があることを確認した後にtrueのみ、ルーチンを に設定します。
| 設定名 | Oracle 組み込み関数 |
|---|---|
AddMonthsBuiltinFunctionOracle |
ADD_MONTHS |
BitandBuiltinFunctionOracle |
BITAND |
CoshBuiltinFunctionOracle |
COSH |
DbmsAssertBuiltinFunctionOracle |
DBMS_ASSERT パッケージ |
DbmsOutputBuiltinFunctionOracle |
DBMS_OUTPUT パッケージ |
DbmsRandomBuiltinFunctionOracle |
DBMS_RANDOM パッケージ |
DbtimezoneBuiltinFunctionOracle |
DBTIMEZONE |
DecodeBuiltinFunctionOracle |
DECODE |
DumpBuiltinFunctionOracle |
DUMP |
InstrBuiltinFunctionOracle |
INSTR |
InstrbBuiltinFunctionOracle |
INSTRB |
LastDayBuiltinFunctionOracle |
LAST_DAY |
LengthBuiltinFunctionOracle |
LENGTH |
LengthbBuiltinFunctionOracle |
LENGTHB |
ListaggBuiltinFunctionOracle |
LISTAGG |
LnnvlBuiltinFunctionOracle |
LNNVL |
LpadBuiltinFunctionOracle |
LPAD |
LtrimBuiltinFunctionOracle |
LTRIM |
MedianBuiltinFunctionOracle |
MEDIAN |
MonthsBetweenBuiltinFunctionOracle |
MONTHS_BETWEEN |
NanvlBuiltinFunctionOracle |
NANVL |
NextDayBuiltinFunctionOracle |
NEXT_DAY |
NlssortBuiltinFunctionOracle |
NLSSORT |
Nvl2BuiltinFunctionOracle |
NVL2 |
NvlBuiltinFunctionOracle |
NVL |
RoundDateFmtBuiltinFunctionOracle |
ROUND (日付) |
RoundNumberBuiltinFunctionOracle |
ROUND (数値) |
RpadBuiltinFunctionOracle |
RPAD |
RtrimBuiltinFunctionOracle |
RTRIM |
SessiontimezoneBuiltinFunctionOracle |
SESSIONTIMEZONE |
SinhBuiltinFunctionOracle |
SINH |
SubstrBuiltinFunctionOracle |
SUBSTR |
SubstrbBuiltinFunctionOracle |
SUBSTRB |
SysdateBuiltinFunctionOracle |
SYSDATE |
TanhBuiltinFunctionOracle |
TANH |
ToCharDatetimeBuiltinFunctionOracle |
TO_CHAR (日時) |
ToCharNumberBuiltinFunctionOracle |
TO_CHAR (数値) |
ToDateBuiltinFunctionOracle |
TO_DATE |
ToMultiByteBuiltinFunctionOracle |
TO_MULTI_BYTE |
ToNumberBuiltinFunctionOracle |
TO_NUMBER |
ToSingleByteBuiltinFunctionOracle |
TO_SINGLE_BYTE |
TruncDateBuiltinFunctionOracle |
TRUNC (日付) |
TruncNumberBuiltinFunctionOracle |
TRUNC (数値) |
各ルーチンは個別のブールキーです。次の例では、Oracle 、ADD_MONTHS、NVLおよび SUBSTR関数の Orafce ルーチンを有効にします。ソースコード内の関数と一致するキーを追加または削除し、プロジェクトが使用する各セクション名に同じキーを適用します。
{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
SQL コード設定
PostgreSQL がサポートしていない Oracle 組み込みオブジェクトを DMS Schema Conversion がどのように処理するかを設定します。
- サポートされていない組み込みオブジェクトをスタブオブジェクトに変換する (
ConvUnsupportedBuiltinsToStubs) -
DMS Schema Conversion が、サポートされていない組み込みオブジェクトをスタブオブジェクトに置き換えるかどうかを指定します。
-
false— DMS Schema Conversion は、サポートされていない組み込みオブジェクトを評価レポートのアクション項目として残します。 -
true— DMS Schema Conversion は、サポートされていない各組み込みオブジェクトを、同じ署名を持つスタブオブジェクトに置き換えます。変換されたオブジェクトはコンパイルされるため、個々のスタブに対処する前に残りのスキーマをデプロイしてテストできます。
タイプ: ブール値 (
true|false)デフォルト:
false -
- 別のスキーマにスタブオブジェクトを作成する (
CreateStubsInSeparateSchema) -
DMS Schema Conversion が別のスキーマにスタブオブジェクトを作成するかどうかを指定します。このオプションは、サポートされていない組み込みオブジェクトをスタブオブジェクトに変換が選択されている AWS Management Console 場合にのみ に表示され、そのオプションが有効になっている場合にのみ有効になります。
-
true— DMS Schema Conversion は、別のスキーマにスタブオブジェクトを作成します。これにより、アプリケーションスキーマをクリーンに保ち、実装が必要なスタブを簡単に特定できます。 -
false— DMS Schema Conversion は、変換されたオブジェクトと同じスキーマにスタブオブジェクトを作成します。
タイプ: ブール値 (
true|false)デフォルト:
true -
例: Oracle から PostgreSQL への設定を構成する
次の例では、マテリアライズドビューを PostgreSQL ROWID マテリアライズドビューとして保持し、 bigint データ型を使用して擬似列をエミュレートし、プロシージャを関数に変換します。プロジェクトで使用する各セクション名に同じ設定を適用します (最初に DescribeConversionConfiguration の出力を確認します)。
{ "ORACLE_TO_POSTGRESQL_15": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL_14": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true } }