DBMS_CLOUD_MIGRATIONパッケージ

DBMS_CLOUD_MIGRATIONパッケージを使用すると、PostgreSQLからOracle SQLへのSQLコードの変換が容易になります。

DBMS_CLOUD_MIGRATIONサブプログラムの概要

この表は、DBMS_CLOUD_MIGRATIONパッケージに含まれるサブプログラムの概要を示しています。

サブプログラム 説明

MIGRATE_SQLプロシージャおよびファンクション

MIGRATE_SQLを使用すると、Oracle SQL以外で記述されたSQL文のOracle SQLへの変換が容易になります。

MIGRATE_FILEプロシージャ

このプロシージャは、指定されたソース・データベースのSQL文を含むファイルを入力として変換し、SQL文をOracle SQLに変換します。

ENABLE_TRANSLATIONプロシージャ

このプロシージャは、リアルタイムSQL変換およびAutonomous DatabaseでのOracle以外のSQL文の実行を有効にします。

DISABLE_TRANSLATIONプロシージャ

このプロシージャを使用すると、SQL言語翻訳を終了できます。

MIGRATE_SQLプロシージャおよびファンクション

MIGRATE_SQLを使用すると、Oracle SQL以外で記述されたSQL文のOracle SQLへの変換が容易になります。このプロシージャはオーバーロードされており、関数およびプロシージャのバリアントがあります。

構文

DBMS_CLOUD_MIGRATION.MIGRATE_SQL (
   original_sql  IN  CLOB,
   output_sql    OUT CLOB,
   source_db     IN  VARCHAR2);

DBMS_CLOUD_MIGRATION.MIGRATE_SQL (
   original_sql  IN  CLOB,
   source_db     IN  VARCHAR2);
RETURN CLOB;

パラメータ

パラメータ 説明

original_sql

Oracle SQLに変換する必要があるソース・データベース内の元のSQL文を指定します。

このパラメータは必須です。

output_sql

変換されたSQL文を返します。

このパラメータは必須です。

source_db

ソース・データベースの名前を指定します。このパラメータの有効な値はPOSTGRESです。

このパラメータは必須です。

戻り値

DBMS_CLOUD_MIGRATION.MIGRATE_SQLのファンクション形式は、変換されたOracle SQLバージョンのORIGINAL_SQL入力を含むCLOBを返します。

使用上のノート

  • Oracle SQLで入力SQL文がサポートされていない場合、変換中にエラーが発生することがあります。詳細は、Oracle以外のSQLからOracle SQLへの移行および翻訳の制限事項を参照してください。

  • DBMS_CLOUD_MIGRATION.MIGRATE_SQLサブプログラムは、入力として1つのSQL文のみを受け入れます。そのため、コールごとに変換できるSQL文は1つのみです。

  • DBMS_CLOUD_MIGRATION.MIGRATE_SQLプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_MIGRATIONパッケージに対するEXECUTE権限を持っている必要があります。

PostgreSQL文をOracle SQLに変換するDBMS_CLOUD_MIGRATION.MIGRATE_SQLのプロシージャ形式:

BEGIN
  DBMS_CLOUD_MIGRATION.MIGRATE_SQL(      
    original_sql => 'SELECT e.employee_id, e.last_name, e.salary FROM employees AS e;',
    output_sql   => output_variable,
    source_db    => 'POSTGRES');
END;        
/

PostgreSQL文をOracle SQLに変換するDBMS_CLOUD_MIGRATION.MIGRATE_SQLのファンクション形式:

SELECT DBMS_CLOUD_MIGRATION.MIGRATE_SQL
    ('CREATE TABLE IF NOT EXISTS cars (brand VARCHAR(255), model VARCHAR(255), year INT)', 'POSTGRES') AS output 
    FROM DUAL;

OUTPUT
------------------------------------------------------------------------------
create table cars (brand VARCHAR2(255), model VARCHAR2(255), year NUMBER(10);

MIGRATE_FILEプロシージャ

MIGRATE_FILEは、指定されたソース・データベースからSQL文を含むファイルを入力として取得し、SQL文をOracle SQLに変換します。

構文:

DBMS_CLOUD_MIGRATION.MIGRATE_FILE (
    credential_name  IN VARCHAR2,
    location_uri     IN VARCHAR2,
    target_uri       IN VARCHAR2 DEFAULT NULL,
    source_db        IN VARCHAR2,
    params           IN CLOB

パラメータ

パラメータ 説明

credential_name

クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。

このパラメータは必須です。

オプションで、クラウド・オブジェクト・ストアへのアクセスに使用する資格証明は、ポリシーおよびロールを構成することで定義できます。詳細は、リソースにアクセスするためのポリシーとロールの構成を参照してください。

location_uri

ソース・ファイルURI。URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。

このパラメータは必須です。

target_uri

変換されたファイルを格納するターゲット・ファイルURI。このパラメータに値を指定しない場合、変換されたファイルはソース・ファイルと同じ場所に格納されます。

URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。

source_db

ソース・データベース言語を指定します。このパラメータの有効な値はPOSTGRESです。

このパラメータは必須です。

params

JSON形式で渡すことができる追加パラメータを指定します。

使用上のノート

  • DBMS_CLOUD_MIGRATION.MIGRATE_FILEを実行するには、ADMINユーザーとしてログインしているか、DBMS_CLOUD_MIGRATIONに対するEXECUTE権限を持っている必要があります。

  • credential_nameパラメータでは、クラウド・オブジェクト・ストレージURIにアクセスするための資格証明を指定します。DBMS_CLOUD_MIGRATION.MIGRATE_FILE.mを実行するユーザーには、オブジェクト・ストレージURIへのアクセスに使用される資格証明オブジェクトに対するEXECUTE権限が必要です。つまり、credential_nameパラメータで指定する資格証明です。

BEGIN
 DBMS_CLOUD_MIGRATION.MIGRATE_FILE (
     credential_name => 'OBJ_STORE_CRED',
     location_uri    => 'https://objectstorage.region.oraclecloud.com/n/namespace/b/bucket/o/files/postgrestest.sql',
     source_db       => 'POSTGRES'
    );
END;
/

credential_nameパラメータでは、クラウド・オブジェクト・ストレージURIにアクセスするための資格証明を指定します。

location_uriはソース・ファイルのURIです。URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。

この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

ENABLE_TRANSLATIONプロシージャ

ENABLE_TRANSLATIONプロシージャは、リアルタイムSQL変換およびAutonomous DatabaseでのOracle以外のSQL文の実行を有効にします。

構文:

パラメータ

DBMS_CLOUD_MIGRATION.ENABLE_TRANSLATION (
   source_db  IN  VARCHAR2);
パラメータ 説明

source_db

ソース・データベース言語を指定します。このパラメータの有効な値はPOSTGRESです。

このパラメータは必須です。

使用上のノート

  • DBMS_CLOUD_MIGRATION.ENABLE_TRANSLATIONを実行するには、ADMINユーザーとしてログインしているか、DBMS_CLOUD_MIGRATIONに対するEXECUTE権限を持っている必要があります。

BEGIN
  DBMS_CLOUD_MIGRATION.ENABLE_TRANSLATION (source_db => 'POSTGRES');
END;        
/

DISABLE_TRANSLATIONプロシージャ

DISABLE_TRANSLATIONプロシージャを使用すると、SQL言語変換を終了できます。セッションでSQL言語変換が有効になっていない場合は、エラーが返されます。

構文:

DBMS_CLOUD_MIGRATION.DISABLE_TRANSLATION();

使用上のノート

  • DBMS_CLOUD_MIGRATION.DISABLE_TRANSLATIONを実行するには、ADMINユーザーとしてログインしているか、DBMS_CLOUD_MIGRATIONに対するEXECUTE権限を持っている必要があります。

BEGIN
  DBMS_CLOUD_MIGRATION.DISABLE_TRANSLATION();
END;        
/