機械翻訳について

DBMS_CLOUD_MIGRATIONパッケージ

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

DBMS_CLOUD_MIGRATIONサブプログラムのサマリー

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

サブプログラム 説明

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

MIGRATE_SQLを使用すると、Oracle SQL以外で記述されたSQL文のOracle SQLへの変換が容易になります。 サポートされているSQLフレーバは、PostgreSQL、MySQLおよびSQL Serverです。

MIGRATE_FILEプロシージャ

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

ENABLE_TRANSLATIONプロシージャ

このプロシージャは、Autonomous DatabaseでOracle以外のSQL文のリアルタイムSQL変換および実行を有効にします。 サポートされているSQLフレーバは、PostgreSQL、MySQLおよびSQL Serverです。

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, MYSQL, SQLSERVERです。

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

戻り値

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

使用上のノート

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

Cloud Object Storageにアクセスするための資格証明の名前。

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

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

location_uri

ソース・ファイルURI。 URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。

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

target_uri

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

URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。

source_db

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

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

params

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

使用上のノート

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

  • credential_nameパラメータは、クラウド・オブジェクト・ストレージURIにアクセスするための資格証明を指定します。 DBMS_CLOUD_MIGRATION.MIGRATE_FILEを実行するユーザーには、オブジェクト・ストレージ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, MYSQL, SQLSERVERです。

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

使用上のノート

  • 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;        
/