コンバージョン ワークスペースでは、すべてのコンバージョンの問題がグループとカテゴリに集約され、コンバージョンのエラーと警告を修正する計画を立てることができます。各カテゴリは、問題を修正するために必要な作業の種類(確認、リファクタリング、データ型の調整)を表します。グループは、下位レベルの特定のケースを区別するため、さらに集計を行います。
次の表に、スキーマ変換中に発生する可能性のある変換の問題グループをすべて示します。
| 問題グループ ID | 説明 | ||
|---|---|---|---|
入力に関する問題(
|
|||
CW_OP0101 |
無効なソースコード |
||
|
考えられる根本原因
このグループのエラーは、Database Migration Service で不明な構文が検出された場合や、Oracle ソースコードが無効な場合(ストアド プロシージャに |
|||
|
考えられる対応策
移行元の Oracle データベースで無効なオブジェクトを修正します。次に、Database Migration Service でソーススキーマのスナップショットを更新し、スキーマ変換プロセスを再試行します。または、移行からオブジェクトを除外することもできます。 |
|||
CW_OP0102 |
参照先のオブジェクトが見つかりません |
||
|
考えられる根本原因 Database Migration Service は、ソースツリー内のオブジェクトのメタデータを使用して、依存オブジェクトのコード変換品質を向上させます。コードがソーススキーマに含まれていないオブジェクトを参照している場合、Database Migration Service は、参照されている列、属性、オブジェクトの構造やデータ型を特定できないため、変換の問題が発生する可能性があります。 このグループで発生する可能性のあるエラーには、ユーザー定義型(UDT)のデータ型が正しくない、列、パラメータ、変数のデフォルトの |
|||
| 考えられる緩和策 参照されているすべてのオブジェクトが Database Migration Service のソースツリーに追加されていることを確認するか、欠落している依存関係のソースデータ モデルに関する知識に基づいて PostgreSQL コードを手動で調整します。 |
|||
CW_OP0103 |
主キーのないテーブル |
||
|
考えられる根本原因 Database Migration Service では、すべてのテーブルに主キーが必要です。主キーのないテーブルの場合、Database Migration Service は、 |
|||
|
考えられる対応策
移行後に |
|||
ソース機能はサポートされていません(
|
|||
CW_OP0200 |
サポートされていない Oracle 組み込み機能 |
||
|
考えられる根本原因 サポートされていない組み込みの Oracle 機能を使用している可能性があります。 |
|||
|
考えられる対応策
PostgreSQL で同様の機能を見つけて、変換されたコードを適宜変更します。場合によっては、Cloud SQL for PostgreSQL と AlloyDB for PostgreSQL の両方の移行で使用できる Orafce 拡張機能によって、不足している機能が提供されることがあります。 |
|||
CW_OP0201 |
|
||
|
考えられる根本原因 Oracle の |
|||
|
考えられる対応策
ソースコードが ソースコードが整数を返す |
|||
CW_OP0203 |
Oracle SQL 関数はサポートされていません |
||
|
考えられる根本原因 一部の Oracle 組み込み関数は、Database Migration Service での変換でサポートされていません。
一部の関数には、PostgreSQL に対応する関数( |
|||
|
考えられる対応策
エラーを発生させた Oracle 関数を調べます。
|
|||
CW_OP0204 |
Oracle 組み込みパッケージは完全にはサポートされていません |
||
|
考えられる根本原因 Database Migration Service は特定の Oracle 組み込みパッケージをサポートしていますが、 |
|||
|
考えられる対応策
サポートされていないパッケージを使用する場合は、次の操作が必要になることがあります。
|
|||
CW_OP0205 |
変換でサポートされていない Oracle のデータ型 |
||
|
考えられる根本原因 一部の Oracle データ型は、現在、変換またはデータ移動でサポートされていません。 |
|||
|
考えられる対応策
ほとんどの場合、PostgreSQL には同等のデータ型があります。 変換マッピング ファイルを使用して変換ロジックをカスタマイズし、サポートされていない Oracle データ型を必要な PostgreSQL データ型に変換できます。 データ型のサポートの詳細については、 コンバージョン ワークスペース - 概要とサポートされているオブジェクトをご覧ください。 |
|||
CW_OP0206 |
命名の競合 |
||
|
考えられる根本原因 このグループは、複数のデータベース オブジェクト(テーブル、マテリアライズド ビューなど)が、移行先データベースで同じ名前を使用するように変換される問題をキャプチャします。たとえば、名前が大文字と小文字の違いのみであるソース オブジェクトがある場合に、この問題が発生することがあります。Oracle のオブジェクト名では大文字と小文字が区別されませんが、PostgreSQL では区別されるため、オブジェクト名は同じ文字列を使用するように変換されます。 |
|||
|
考えられる対応策
競合するオブジェクトの名前を、ソース データベースで直接変更するか、変換ワークスペース エディタで変換されたスキーマで変更します。
|
|||
ソース機能はサポートされていません(
|
|||
CW_OP0300 |
ソース機能はサポートされていません |
||
|
考えられる根本原因
このグループには、変換でサポートされていない Oracle 機能に関連する一般的な問題がすべて含まれます。このグループの問題は、他のより具体的な問題グループには該当しません。 |
|||
考えられる対応策
|
|||
CW_OP0301 |
スキーマ オブジェクト タイプはサポートされていません |
||
|
考えられる根本原因 PostgreSQL には適切な同等のオブジェクトがないため、Database Migration Service はコード変換で特定の Oracle スキーマ オブジェクト タイプをサポートしていません。たとえば、索引構成表(IOT)、テキスト検索インデックス、ユーザー定義型(UDT)の本文などです。 |
|||
|
考えられる対応策
Database Migration Service は、サポートされていないオブジェクトを最も近い PostgreSQL の同等オブジェクトに変換します。たとえば、IOT は主キー制約を持つ通常のテーブルになり、テキスト検索インデックスは B ツリー インデックスに変換されます。これらの変換により、元のオブジェクト タイプに固有の機能が失われる可能性があります。 |
|||
CW_OP0302 |
PL/SQL 機能はサポートされていません |
||
|
考えられる根本原因
このグループには、変換でサポートされていない PL/SQL 機能に関連する一般的な問題がすべて含まれます。このグループの問題は、他のより具体的な問題グループには該当しません。 |
|||
考えられる対応策
|
|||
CW_OP0303 |
一括バインディングはサポートされていません |
||
|
考えられる根本原因
Database Migration Service のコード変換は、現在、 |
|||
|
考えられる対応策
この問題を解決するには、一括バインド機能を使用するコードを変更する必要があります。PostgreSQL と Oracle のアーキテクチャの違いと、ユースケースで PostgreSQL で配列処理が必要かどうかを検討することをおすすめします。 PostgreSQL で Oracle の一括バインド オペレーションにアプローチするには、いくつかの戦略があります。これらの使用方法は、特定のシナリオによって異なります。そのため、特定のニーズに対応するには、 Gemini を活用した変換アシスタンスを使用することをおすすめします。以下に、参考になるおすすめの例をいくつか紹介します。
|
|||
CW_OP0304 |
コレクションはサポートされていません |
||
|
考えられる根本原因 Database Migration Service のコード変換は、Oracle コレクションを部分的にサポートしています。 |
|||
|
考えられる対応策
変換された PostgreSQL コードを適宜変更する必要があります。コレクションに関する問題を解決する際は、PostgreSQL 配列がスパースになることはないことに注意してください。要素をまばらに割り当てると、PostgreSQL 配列は Oracle 配列とは異なる結果とカーディナリティ数を返す可能性があります。
PostgreSQL は文字列インデックス配列をサポートしていないため、データの性質によっては、 |
|||
CW_OP0305 |
パイプライン関数はサポートされていません |
||
|
考えられる根本原因 パイプライン関数は、Database Migration Service ではサポートされていません。 |
|||
|
考えられる対応策
Oracle のパイプライン関数は、PostgreSQL のセットを返す関数に置き換えることができます。ユースケースに関連する方法でコードを調整することをおすすめします。以下に、参考となる例をいくつかご紹介します。
Oracle 関数の |
|||
CW_OP0306 |
動的 SQL はサポートされていません |
||
|
考えられる根本原因
Database Migration Service は、動的 SQL の変換を部分的にサポートしています。Oracle の |
|||
|
考えられる対応策
変換されたコードを要件に合わせて変更する必要があります。動的 SQL を処理するには、 Gemini を活用した変換アシスタンスを使用することを強くおすすめします。 |
|||
CW_OP0307 |
|
||
|
考えられる根本原因 ほとんどの |
|||
|
考えられる対応策
降順の
|
|||
CW_OP0308 |
JSON はサポートされていません |
||
|
考えられる根本原因 Database Migration Service がデータ移動とコード変換で
|
|||
考えられる対応策
|
|||
CW_OP0309 |
ロックとトランザクションに関する問題 |
||
|
考えられる根本原因 Database Migration Service のコード変換は、 |
|||
考えられる対応策
|
|||
CW_OP0310 |
XML はサポートされていません |
||
|
考えられる根本原因
Database Migration Service は、Oracle |
|||
|
考えられる対応策
Database Migration Service は XML データを移行する手順は次のとおりです。
PostgreSQL が |
|||
CW_OP0312 |
|
||
|
考えられる根本原因 Database Migration Service は、コード変換の |
|||
|
考えられる対応策
PostgreSQL で
PostgreSQL では、一連の列から Key-Value ペアを作成する
|
|||
CW_OP0313 |
|
||
|
考えられる根本原因 Database Migration Service は、変換のために |
|||
|
考えられる対応策
Oracle の |
|||
CW_OP0314 |
SQL 機能はサポートされていません |
||
|
考えられる根本原因
このグループには、変換でサポートされていない SQL 機能に関連する一般的な問題がすべて含まれます。このグループの問題は、他のより具体的な問題グループには該当しません。たとえば、データベース イベント トリガー、 |
|||
考えられる対応策
|
|||
サポートされていない構文(
|
|||
CW_OP0400 |
サポートされていない構文 |
||
|
考えられる根本原因
このグループには、サポートされていない Oracle SQL または PL/SQL 構文に関連するすべての一般的な問題が含まれます。このグループの問題は、他のより具体的な問題グループには該当しません。 |
|||
|
考えられる対応策
PostgreSQL と機能的に同等の PostgreSQL 構文を使用するようにコードを変更します。Gemini を活用した自動変換機能を試して、コードを調整することをおすすめします。詳細については、 Gemini アシスタンスを使用して Oracle のコードとスキーマを変換するをご覧ください。 |
|||
CW_OP0401 |
サポートされていない SQL 構文 | ||
|
考えられる根本原因 ソースコードで、Database Migration Service でサポートされていない SQL 構文または要素が使用されている。たとえば、Oracle |
|||
考えられる対応策
|
|||
CW_OP0402 |
対応していない PL/SQL 構文 | ||
|
考えられる根本原因 ソースコードで、Database Migration Service でサポートされていない PL/SQL 構文または要素が使用されている。たとえば、レコードベースの |
|||
|
考えられる対応策
PostgreSQL と機能的に同等の PostgreSQL 構文を使用するようにコードを変更します。Gemini を活用した自動変換機能を試して、コードを調整することをおすすめします。詳細については、 Gemini アシスタンスを使用して Oracle のコードとスキーマを変換するをご覧ください。 |
|||
CW_OP0403 |
サポートされていない日付とタイムスタンプの構文 |
||
|
考えられる根本原因
Database Migration Service では、サポートされていない日付またはタイムスタンプの構文、オペレーション、式に対してエラーまたは警告が発生することがあります。このような問題の例としては、一致しないデータ型間の比較や、タイムスタンプでの |
|||
|
考えられる対応策
ほとんどの日付とタイムスタンプの式は、PostgreSQL の同等の式を使用して再作成できます。このような修正を迅速に行うには、Gemini を活用した自動変換機能を使用することをおすすめします。詳細については、 Gemini アシスタンスを使用して Oracle のコードとスキーマを変換するをご覧ください。 |
|||
CW_OP0404 |
Oracle の例外処理構文のサポートされていない要素 |
||
|
考えられる根本原因 Database Migration Service のコード変換では、次の Oracle
|
|||
|
考えられる対応策
これらの問題は、変換されたコードで手動で解決する必要があります。このような修正を迅速に行うには、Gemini を活用した自動変換機能を使用することをおすすめします。詳細については、 Gemini アシスタンスを使用して Oracle のコードとスキーマを変換するをご覧ください。 |
|||
データ型と変換(
|
|||
CW_OP0500 |
データ型と変換に関する問題 |
||
|
考えられる根本原因 Database Migration Service は、コンテキスト(
型比較式で発生する変換の問題など)に基づいて変換の問題をグループ化できます。 |
|||
|
考えられる対応策
ほとんどの場合、Database Migration Service は、変換された PostgreSQL コードで |
|||
CW_OP0501 |
日付形式モデルに関する問題 |
||
|
考えられる根本原因
フォーマット モデルに基づいて日付またはタイムスタンプ式を文字列に変換する場合、または文字列から変換する場合に、警告や問題が発生することがあります。Oracle ソースコードのキャストで明示的な日付またはタイムスタンプ形式モデルが除外されている場合、Database Migration Service はデフォルト モデル(現在は
暗黙的なキャストに対して出力された形式モデルが、同じ式内の明示的な形式モデルと競合する場合、変換されたコードで問題が発生することがあります。この問題は、
Oracle の |
|||
|
考えられる対応策
コンバージョン ワークスペースで、変換された PostgreSQL 式を確認して検証します。 |
|||
CW_OP0502 |
数値形式モデルに関する問題 |
||
|
考えられる根本原因 Database Migration Service は、すべての
Oracle 形式モデルをサポートしているわけではありません。たとえば、 |
|||
|
考えられる対応策
PostgreSQL に同等のものがない Oracle 形式モデルの場合は、式または形式モデルのリファクタリングが必要になることがあります。このような修正を迅速に行うには、Gemini を活用した自動変換機能を使用することをおすすめします。詳細については、 Gemini アシスタンスを使用して Oracle のコードとスキーマを変換するをご覧ください。 |
|||
CW_OP0503 |
データ型キャストの問題 |
||
|
考えられる根本原因 サポートされていないデータ型キャストや不正確なデータ型キャストが原因で、エラーが発生することがあります。Database Migration Service は通常、 |
|||
|
考えられる対応策
PostgreSQL コードを調整して、データ型が正しく変換されるようにします。これらの修正を行うには、参照される属性、変数、列に精通している必要があります。 |
|||
CW_OP0504 |
比較の問題 |
||
|
考えられる根本原因
Database Migration Service には、データ比較式を変換する際に、データ型に関する十分なメタデータや情報がない場合があります。たとえば、ユーザー定義型(UDT)が |
|||
|
考えられる対応策
変換された PostgreSQL 式を確認し、問題を解決します。このような修正を迅速に行うには、Gemini を活用した自動変換機能を使用することをおすすめします。詳細については、 Gemini アシスタンスを使用して Oracle のコードとスキーマを変換するをご覧ください。 |
|||
機能の微妙な違い(
|
|||
|
このカテゴリの問題は、Oracle ソースコードが最も近い PostgreSQL の同等物に正しく変換されているものの、結果のコードに軽微なセマンティックまたは機能的な違いがあり、確認が必要な場合を表します。これは、Oracle と PostgreSQL でデータ型、形式、オブジェクトの処理方法が異なるために発生します。 一見すると、このカテゴリは
データ型と変換( |
|||
CW_OP0601 |
日付形式モデルを確認してください |
||
|
考えられる根本原因
ほとんどの
Oracle の日付とタイムスタンプの形式モデルには、PostgreSQL に適切な同等のモデルがあるため、変換されたコードに意味的または機能的な違いはありません。一部のモデルには完全一致がなく、動作が異なります。
たとえば、
Oracle の |
|||
|
考えられる対応策
フォーマット モデル変換を使用した式を確認して検証し、変換されたコードが想定どおりに動作することを確認します。 |
|||
CW_OP0602 |
数値形式モデルを確認してください |
||
|
考えられる根本原因 ほとんどのソース数値形式モデルには PostgreSQL に同等のモデルがあるため、変換されたコードにセマンティックや機能の違いはありません。ただし、一部のフォーマット モデルは、完全に一致しない場合や、動作が若干異なる場合があります。 |
|||
|
考えられる対応策
フォーマット モデル変換を使用した式を確認して検証し、変換されたコードが想定どおりに動作することを確認します。 |
|||
CW_OP0603 |
例外コードを確認してください |
||
|
考えられる根本原因
|
|||
|
考えられる対応策
この動作を確認して、ニーズに適しているかどうかを判断してください。 この確認は、ソースエラー コードがアプリケーション、サポートチーム、ドキュメントにとって意味がある場合にのみ必要です。エラーコード値自体に意味がない場合は、この警告を無視できます。 |
|||
CW_OP0604 |
例外メッセージを確認してください |
||
|
考えられる根本原因
|
|||
|
考えられる対応策
アプリケーション、サポート インフラストラクチャ、ドキュメントがエラーテキストに依存している場合は、変換を確認してください。それ以外の場合は、この違いを無視できます。 |
|||
CW_OP0605 |
Oracle 組み込み関数のエミュレーションを確認してください |
||
|
考えられる根本原因 Database Migration Service のコードとスキーマの変換は、Oracle 関数の動作を PostgreSQL の同等の機能で提供することを目的としていますが、シナリオによっては結果が満足できない場合があります。そのため、コンバージョン ワークスペースでは、確認が必要な関数変換に関するアドバイスの警告が常に表示されます。 |
|||
|
考えられる対応策
変換ワークスペースが |
|||
CW_OP0606 |
外部キー列のデータ型を確認してください |
||
|
考えられる根本原因 Database Migration Service が、親オブジェクトと子オブジェクトの間で一致しないデータ型仕様を特定しました(たとえば、親列が |
|||
|
考えられる対応策
ほとんどの場合、データ型の不一致がわずかであれば、データベースの機能に問題は発生しません。ただし、変換されたデータモデルに不整合がないか確認することをおすすめします。 |
|||
機能の確認をおすすめします(
|
|||
CW_OP0701 |
機能の確認を推奨 | ||
|
考えられる根本原因
このグループには、Oracle と PostgreSQL のコードの機能的な違いに関連する一般的な問題がすべて含まれます。このグループの問題は、他のより具体的な問題グループには該当しません。 |
|||
考えられる対応策
|
|||
CW_OP0702 |
Oracle 組み込み関数のエミュレーションを確認してください |
||
|
考えられる根本原因 多くの Oracle 組み込み関数には、PostgreSQL に直接対応する関数がありません。移行時のこの問題を軽減するため、Database Migration Service は、異なる SQL 式を使用してコードを変換し、PostgreSQL で同等の機能動作を実現します。 変換された式が複雑になる場合があります。
Database Migration Service は、 |
|||
|
考えられる対応策
変換されたコードを確認して、変換された関数が PostgreSQL 環境で想定どおりに動作することを確認します。 |
|||
リファクタリングが必要(
|
|||
CW_OP0801 |
自律型トランザクションのリファクタリングが必要です |
||
|
考えられる根本原因 PostgreSQL は 自律型トランザクションをサポートしていません。 |
|||
|
考えられる対応策
PostgreSQL で自律型トランザクションを実現するには、
|
|||
CW_OP0802 |
データベース リンクのリファクタリングが必要です |
||
|
考えられる根本原因 Database Migration Service は、 Oracle データベース リンクをサポートしていません。リンクを使用するオブジェクトは、リファクタリングが必要です。 |
|||
|
考えられる対応策
データベース リンクのターゲットに応じて、
|
|||
CW_OP0803 |
高度なキュー リファクタリングが必要です |
||
|
考えられる根本原因 Oracle Advanced Queuing パッケージ( |
|||
|
考えられる対応策
次のオプションを検討してください。
|
|||
CW_OP0804 |
データベースのメール リファクタリングが必要です |
||
|
考えられる根本原因 AlloyDB for PostgreSQL は、データベースから直接メールを送信することをサポートしていません。この機能を有効にする拡張機能もサポートされていません。
そのため、Database Migration Service は
|
|||
|
考えられる対応策
データベースのメールコードをリファクタリングし、メール送信の責任をアプリケーション層に移動します。データベースを使用して、メールの送信が必要な条件をキャプチャすることもできます。 実装例としては、メールの詳細を専用のテーブルに書き込むことが考えられます。このテーブルは、Cloud Run functions 関数でポーリングして実際の SMTP 処理を行うメールキューとしても機能します。 |
|||
CW_OP0805 |
ジョブとスケジューリングのリファクタリングが必要です |
||
|
考えられる根本原因
|
|||
|
考えられる対応策
依存関係のない単純なジョブの場合は、
|
|||
CW_OP0806 |
ファイル I/O のリファクタリングが必要です |
||
|
考えられる根本原因 Database Migration Service は、Oracle の
Orafce 拡張機能には |
|||
考えられる対応策
|
|||
CW_OP0807 |
類義語 |
||
|
考えられる根本原因 PostgreSQL はシノニムをサポートしていません。コード オブジェクトの場合、Database Migration Service は、シノニム参照をソーススキーマとオブジェクト名に自動的に置き換えます。コード オブジェクトの外部で同義語を使用する場合(データベース アプリケーション ユーザーの読み取り専用スキーマなど)、手動で変換する必要があります。 |
|||
|
考えられる対応策
コード オブジェクトの外部で同義語を使用する場合は、PostgreSQL の
|
|||
CW_OP0808 |
グローバル一時テーブルのリファクタリングが必要です |
||
|
考えられる根本原因 この問題グループは、Database Migration Service が Oracle ソースコードでグローバル一時テーブルを検出したことを示す警告です。グローバル一時テーブルを移行するには、移行先のデータベースに pgtt PostgreSQL 拡張機能をインストールして作成する必要があります。 |
|||
|
考えられる対応策
pgtt PostgreSQL 拡張機能がインストールされ、移行先データベースに作成されていることを確認することをおすすめします。 |
|||
Gemini の推奨事項の確認(
|
|||
CW_AI9900 |
Gemini の提案を確認してください |
||
| 考えられる根本原因:
この問題グループには、Gemini による拡張コード変換に関連する一般的なエラーと警告がすべて含まれます。 |
|||
考えられる緩和策: ここで見つかった問題が、必ずしも実際の不具合を指しているとは限りませんが、Gemini 拡張コンバージョンをすべて確認して、期待どおりに動作していることを確認することを強くおすすめします。 |
|||
CW_AI9901 |
AI 拡張コードを確認してください |
||
| 考えられる根本原因: この DDL コードは Gemini の拡張機能を使用して変換されたため、正確性を確認する必要がある可能性があります。 | |||
考えられる緩和策 AI による拡張機能で変換されたコードを慎重に確認し、最終的な結果がソーススキーマの機能と一致していることを確認することをおすすめします。 |
|||
CW_AI9902 |
引用 |
||
| 考えられる根本原因: Gemini で強化された提案には、複数のソースから引用されたコンテンツが含まれる場合があります。特定の引用には、ライセンス制限が適用される場合があります。変換されたコードに引用がないか確認することをおすすめします。 | |||
変換に関する一般的な問題(
|
|||
CW_OP0000 |
メタデータの変換に関する問題 |
||
| 考えられる根本原因:
このグループには、他のより具体的な問題グループに該当しないすべてのコンバージョンの問題が含まれます。 |
|||
| 考えられる対応策
ソースデータ モデルの知識に基づいて変換されたコードを確認し、必要に応じてコードを調整することをおすすめします。 |
|||
CW_OP0001 |
メタデータの変換に関する問題 |
||
| 考えられる根本原因:
このグループは、他のより具体的な問題グループに該当しない、すべてのメタデータ トラッキングの問題をキャプチャします。 |
|||
| 考えられる対応策:
このグループの問題の例は、通常、変換された PostgreSQL のデータ型に問題を引き起こす可能性のあるコンパイル エラーまたは警告に関連しています。ソースデータ モデルの知識に基づいて変換されたコードを確認し、不適切な参照を調整することをおすすめします。 |
|||
CW_OP0002 |
サポートチームにお問い合わせください |
||
考えられる根本原因 特殊なエッジケースでは、有効な Oracle ソース オブジェクトで内部エラーが発生することがあります。その場合は、サポートチームにお問い合わせください。 |
|||
CW_OP0003 |
変換に関する一般的な問題 |
||
| 考えられる根本原因
このグループには、他のより具体的な問題カテゴリまたはグループに該当しないすべての問題が含まれます。 |
|||
| 考えられる対応策
ソースデータ モデルとコードに関する知識に基づいて、変換されたコードを確認し、必要に応じて調整することをおすすめします。 |
|||