View a markdown version of this page

Oracle から PostgreSQL へのコンバージョン設定 - AWS データベース移行サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 値 ターゲットの結果
TABLE DMS Schema Conversion は、同じ列を持つ通常のテーブルを作成します。これは、更新を手動で管理する場合やレプリケーションツールで管理する場合に使用します。
MATERIALIZED_VIEW DMS 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 値 動作
生成しない false DMS Schema Conversion ROWID は擬似列をエミュレートせず、参照をアクション項目として残します。ソース Oracle コードが を使用しない場合に使用しますROWID。変換されたコードはより速く実行されます。
bigint データ型を使用して ROWID 擬似列をエミュレートする true DMS Schema Conversion は、 bigint データ型を使用して、変換されたコードのROWID擬似列をエミュレートします。
ROWID 擬似列をエミュレートするには、文字が異なるデータ型を使用します。 GENERATE_AS_CHARACTER_DOMAIN_TYPE DMS 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 は、変換されたコードで Oracle TO_CHARの動作をエミュレートします。

  • true — DMS Schema Conversion は、 TO_CHARおよび TO_NCHAR呼び出しをネイティブ PostgreSQL TO_CHAR関数に変換します。形式文字列が PostgreSQL と互換性があるときにエミュレーションされないようにするには、これを選択します。

タイプ: ブール値 (true | false)

デフォルト: false

ネイティブ PostgreSQL TO_DATE 関数を使用する (ToDateFunctionOracle)

DMS Schema Conversion が変換されたコードで Oracle TO_DATE関数をエミュレートするかどうかを指定します。

  • false — DMS Schema Conversion は、変換されたコードで Oracle TO_DATEの動作をエミュレートします。

  • true — DMS Schema Conversion は、TO_DATE呼び出しをネイティブ PostgreSQL TO_DATE関数に変換します。

タイプ: ブール値 (true | false)

デフォルト: false

ネイティブ PostgreSQL TO_NUMBER 関数を使用する (ToNumber)

DMS Schema Conversion が変換されたコードで Oracle TO_NUMBER関数をエミュレートするかどうかを指定します。

  • false — DMS Schema Conversion は、変換されたコードで Oracle TO_NUMBERの動作をエミュレートします。

  • true — DMS Schema Conversion は、TO_NUMBER呼び出しをネイティブ PostgreSQL TO_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。、、 UTC America/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_MONTHSNVLおよび 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 } }