DBMS_CLOUD_MIGRATIONパッケージ
DBMS_CLOUD_MIGRATIONパッケージを使用すると、Oracle以外のSQLフレーバからOracle SQLへのSQLコードの変換が容易になります。
DBMS_CLOUD_MIGRATIONサブプログラムのサマリー
この表は、DBMS_CLOUD_MIGRATIONパッケージに含まれるサブプログラムの概要を示しています。
| サブプログラム | 説明 |
|---|---|
|
|
|
|
このプロシージャは、指定されたソース・データベースからのSQL文を含むファイルを入力として変換し、SQL文をOracle SQLに変換します。 |
|
|
このプロシージャは、Autonomous DatabaseでOracle以外のSQL文のリアルタイムSQL変換および実行を有効にします。 サポートされているSQLフレーバは、PostgreSQL、MySQLおよびSQL Serverです。 |
|
|
このプロシージャは、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;パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Oracle SQLに変換する必要があるソース・データベース内の元のSQL文を指定します。 このパラメータは必須です。 |
|
|
変換されたSQL文を返します。 このパラメータは必須です。 |
|
|
ソース・データベースの名前を指定します。 このパラメータの有効な値は、 このパラメータは必須です。 |
戻り値
DBMS_CLOUD_MIGRATION.MIGRATE_SQLの関数形式は、ORIGINAL_SQL入力の変換されたOracle SQLバージョンを含むCLOBを返します。
使用上のノート
-
Oracle SQLで入力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パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 このパラメータは必須です。 オプションで、クラウド・オブジェクト・ストアへのアクセスに使用する資格証明は、ポリシーおよびロールを構成することで定義できます。 詳細については、「リソースにアクセスするためのポリシーおよびロールの構成」を参照してください。 |
|
|
ソース・ファイルURI。 URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。 このパラメータは必須です。 |
|
|
翻訳されたファイルを格納するターゲット・ファイルURI。 このパラメータに値を指定しない場合、変換されたファイルはソース・ファイルと同じロケーションに格納されます。 URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。 |
|
|
ソース・データベースの言語を指定します。 このパラメータの有効な値は、 このパラメータは必須です。 |
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);
| パラメータ | 説明 |
|---|---|
|
|
ソース・データベースの言語を指定します。 このパラメータの有効な値は、 このパラメータは必須です。 |
使用上のノート
-
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;
/