DBMS_CLOUD_MIGRATIONパッケージ
DBMS_CLOUD_MIGRATIONパッケージを使用すると、Oracle SQL以外のフレーバからOracle SQLへのSQLコードの変換が容易になります。
- DBMS_CLOUD_MIGRATIONサブプログラムの概要
この表は、DBMS_CLOUD_MIGRATIONパッケージに含まれるサブプログラムの概要を示しています。
DBMS_CLOUD_MIGRATIONサブプログラムの要約
この表は、DBMS_CLOUD_MIGRATIONパッケージに含まれるサブプログラムの概要を示しています。
| サブプログラム | 摘要 |
|---|---|
|
|
|
|
このプロシージャは、指定されたソース・データベースのSQL文を含むファイルを入力として変換し、SQL文をOracle SQLに変換します。 |
|
|
このプロシージャにより、Autonomous AI DatabaseでのリアルタイムSQL変換およびOracle以外のSQL文の実行が可能になります。サポートされているSQLフレーバは、PostgreSQL、MySQLおよびSQL Serverです。 |
|
|
このプロシージャは、SQL言語変換を無効にします。 |
- MIGRATE_SQLプロシージャおよびファンクション
MIGRATE_SQLを使用すると、Oracle SQL以外で記述されたSQL文からOracle SQLへの変換が容易になります。このプロシージャはオーバーロードされ、ファンクションおよびプロシージャ・バリアントがあります。 - MIGRATE_FILEプロシージャ
MIGRATE_FILEは、指定されたソース・データベースのSQL文を含むファイルを入力として取得し、SQL文をOracle SQLに変換します。 - ENABLE_TRANSLATIONプロシージャ
ENABLE_TRANSLATIONプロシージャを使用すると、リアルタイムSQL変換およびAutonomous AI DatabaseでのOracle SQL以外の文の実行が可能になります。 - DISABLE_TRANSLATIONプロシージャ
DISABLE_TRANSLATIONプロシージャは、SQL言語変換を無効にします。SQL言語変換がセッションに対して有効になっていない場合は、エラーが返されます。
親トピック: DBMS_CLOUD_MIGRATIONパッケージ
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の関数形式は、変換された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パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 このパラメータは必須です。 オプションで、クラウド・オブジェクト・ストアへのアクセスに使用する資格証明は、ポリシーおよびロールを構成することで定義できます。詳細は、リソースにアクセスするためのポリシーとロールの構成を参照してください。 |
|
|
ソース・ファイルの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 AI 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;
/