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 AI DatabaseでのリアルタイムSQL変換およびOracle以外の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 |
ソース・データベースの名前を指定します。このパラメータの有効な値は、 このパラメータは必須です。 |
戻り値
DBMS_CLOUD_MIGRATION.MIGRATE_SQLのファンクション形式は、変換されたOracle SQLバージョンのORIGINAL_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パラメータ
| パラメータ | 摘要 |
|---|---|
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 このパラメータは必須です。 オプションで、ポリシーおよびロールを構成することで、クラウド・オブジェクト・ストアへのアクセスに使用する資格証明を定義できます。詳細は、リソースにアクセスするためのポリシーとロールの構成を参照してください。 |
location_uri |
ソース・ファイルのURI。URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、「DBMS_CLOUDのURI形式」をご覧ください。 このパラメータは必須です。 |
target_uri |
翻訳済ファイルを格納するターゲット・ファイルURI。このパラメータに値を指定しない場合、変換されたファイルはソース・ファイルと同じ場所に格納されます。 URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、「DBMS_CLOUDのURI形式」を参照してください。 |
source_db |
ソース・データベース言語を指定します。このパラメータの有効な値は、 このパラメータは必須です。 |
params |
JSON形式で渡すことができる追加パラメータを指定します。 |
使用上のノート
-
DBMS_CLOUD_MIGRATION.MIGRATE_FILEを実行するには、ADMINユーザーとしてログインしているか、DBMS_CLOUD_MIGRATIONに対するEXECUTE権限を持っている必要があります。 -
credential_nameパラメータでは、クラウド・オブジェクト・ストレージURIにアクセスするための資格証明を指定します。
DBMS_CLOUD_MIGRATION.MIGRATE_FILE.mustを実行するユーザーには、オブジェクト・ストレージ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 AI DatabaseでのOracle以外のSQL文の実行が可能になります。
構文
DBMS_CLOUD_MIGRATION.ENABLE_TRANSLATION (
source_db IN VARCHAR2);パラメータ
| パラメータ | 摘要 |
|---|---|
source_db |
ソース・データベース言語を指定します。このパラメータの有効な値は、 このパラメータは必須です。 |
使用上のノート
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;
/