DBMS_CLOUDサブプログラムおよびREST API
この項では、Autonomous Databaseで提供されるDBMS_CLOUDサブプログラムおよびREST APIについて説明します。
ノート:
DBMS_CLOUDサブプログラムをADMIN以外のユーザーで実行するには、そのユーザーにEXECUTE権限を付与する必要があります。 たとえば、ADMINとして次のコマンドを実行し、adb_userに権限を付与します: GRANT EXECUTE ON DBMS_CLOUD TO adb_user;DBMS_CLOUDパッケージは、次のもので構成されます:
アクセス管理のためのDBMS_CLOUD
資格証明の作成、削除および更新を含む、DBMS_CLOUDパッケージ内の資格証明管理のサブプログラム。
| サブプログラム | 説明 |
|---|---|
| このプロシージャは、クラウド・サービスの資格証明をAutonomous Databaseに格納します。 | |
| このプロシージャは、既存の資格証明をAutonomous Databaseから削除します。 | |
|
このプロシージャは、ボールト・シークレット資格証明のボールト・シークレットをすぐにリフレッシュして、Autonomous Databaseで指定した |
|
| この手順では、Autonomous Databaseのクラウド・サービス資格証明属性を更新します。 |
CREATE_CREDENTIALプロシージャ
このプロシージャは、クラウド・サービスの資格証明をAutonomous Databaseに格納します。
ストアド・クラウド・サービス資格証明を使用して、データ・ロード用のクラウド・サービスにアクセスしたり、クラウド内に存在する外部データを問い合せる場合や、credential_nameパラメータでDBMS_CLOUDプロシージャを使用する場合などに使用します。 このプロシージャはオーバーロードされています。
-
Oracle Cloud Infrastructure関連のパラメータ(
user_ocid、tenancy_ocid、private_key、fingerprintなど)は、Oracle Cloud Infrastructure署名キー認証を使用している場合にのみ使用します。 -
次のいずれかに対して
paramsパラメータを使用します:-
Amazon Resource Names (ARNs)資格証明
-
Google AnalyticsまたはGoogle BigQuery資格証明
-
サポートされているボールトで使用するVaultシークレット資格証明:
- Oracle Cloud Infrastructure Vault
- Azure Key Vault
- AWSシークレット・マネージャ
- GCPシークレット・マネージャ
-
構文
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL,
comments IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2,
comments IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name IN VARCHAR2,
params IN CLOB DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
保存する資格証明の名前。 |
|
|
|
|
|
|
|
|
資格証明のコメント・テキストを指定します。 このフィールドは、資格証明の説明および区別に役立ちます。 コメントの最大長は3800文字です。 |
|
|
ユーザーOCIDを指定します。 ユーザーOCIDの取得の詳細は、「テナンシOCIDとユーザーOCIDの入手場所」を参照してください。 |
|
|
テナンシOCIDを指定します。 テナンシOCIDの取得の詳細は、「テナンシOCIDとユーザーOCIDの入手場所」を参照してください。 |
|
|
生成される秘密キーを指定します。 パスフレーズを使用して生成された秘密キーはサポートされていません。 パスフレーズのない秘密キーを生成する必要があります。 PEM形式でのキー・ペアの生成の詳細は、「API署名キーを生成する方法」を参照してください。 |
|
|
フィンガープリントを指定します。 生成された公開キーがユーザー・アカウントにアップロードされると、フィンガープリントがコンソールに表示されます。 この引数で表示されたフィンガープリントを使用します。 詳細は、「キー・フィンガープリントの取得方法」および「API署名キーを生成する方法」を参照してください。 |
|
|
次のいずれかの資格証明パラメータを指定します:
|
使用上のノート
-
この操作では、資格証明がデータベースに暗号化された形式で保存されます。
-
user_credentials表を問い合せて、スキーマ内の資格証明を確認できます。 -
user_credentials表を問い合せると、スキーマ内の資格証明コメントを確認できます。 たとえば:SELECT comments FROM user_credentials WHERE credential_name = 'MY_CRED'; -
ADMINユーザーは、dba_credentials表を問い合せて、すべての資格証明を参照できます。 -
資格証明を作成する必要があるのは、クラウド・サービスの資格証明が変更されないかぎりです。 資格証明を保存したら、
credential_nameパラメータを必要とするDBMS_CLOUDプロシージャで同じ資格証明名を使用できます。 -
このプロシージャはオーバーロードされています。 キー・ベースの認証属性のいずれか、
user_ocid、tenancy_ocid、private_keyまたはfingerprintを指定した場合、コールはOracle Cloud Infrastructure署名キー・ベースの資格証明であるとみなされます。 -
ALL_CREDENTIALSビューから資格証明をリストできます。 たとえば、次のコマンドを実行して資格証明をリストします:SELECT credential_name, username, comments FROM all_credentials;
Oracle Cloud Infrastructure資格証明(認証トークン)
Oracle Cloud Infrastructureの場合、usernameはOracle Cloud Infrastructureユーザー名です。 passwordがOracle Cloud Infrastructure認証トークンです。 認証トークンの操作に関する項を参照してください。
たとえば:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
「OCIオブジェクト・ストレージ」へのコールを認証する場合は、認証トークン・ベースの資格証明を使用します。 他のタイプのOracle Cloud Infrastructureクラウド・サービスへのコールには、Oracle Cloud Infrastructure署名キー・ベースの資格証明を使用します。
「OCIオブジェクト・ストレージ」の場合、usernameパラメータ値には、アイデンティティ・ドメインとプロファイルからのユーザー名を含める必要があります。 ユーザーに関連付けられているアイデンティティ・ドメインは、Oracle Cloud Infrastructureコンソールで確認できます。
たとえば:
oracleidentitycloudservice/adb_user@example.com
デフォルトのアイデンティティ・ドメインでは、ドメイン名Defaultを含める必要はありません。 たとえば:
adb_user@example.com
Oracle Cloud Infrastructureキー・ベースの資格証明の署名
次のOracle Cloud Infrastructure署名キー関連パラメータを使用: Oracle Cloud Infrastructure署名キー認証を使用したuser_ocid, tenancy_ocid, private_keyおよびfingerprint。
たとえば:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => âOCI_KEY_CREDâ,
user_ocid => âocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoaâ,
tenancy_ocid => âocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2aâ,
private_key => âMIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=â,
fingerprint => âf2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27â);
END;
/
パスフレーズを使用して生成された秘密キーはサポートされていません。 パスフレーズのない秘密キーを生成する必要があります。 詳細については、「API署名キーを生成する方法」を参照してください。
Oracle Cloud Infrastructure Object Storage Classic資格証明
ソース・ファイルがOracle Cloud Infrastructure Object Storage Classicに存在する場合、usernameはOracle Cloud Infrastructure Classicユーザー名で、passwordはOracle Cloud Infrastructure Classicパスワードです。
Amazon Web Services (AWS)の資格証明
ソース・ファイルがAmazon S3に存在するか、AWS APIをコールしている場合、usernameはAWSアクセス・キーIDで、passwordはAWSシークレット・アクセス・キーです。 『AWS Identity and Access Management』を参照してください。
Microsoft Azure資格証明
ソース・ファイルが「Azure BlobストレージまたはAzure Data Lakeストレージ」に存在する場合、またはAzure APIをコールする場合、usernameはAzureストレージ・アカウント名で、passwordはAzureストレージ・アカウント・アクセス・キーです。 『About Azure storage accounts』を参照してください。
Amazon S3-Compatible資格証明
| サービス | 資格証明情報 |
|---|---|
|
Oracle Cloud Infrastructure (顧客シークレット・キー) |
ソース・ファイルがOracle Cloud Infrastructureにある場合は、S3-compatible URLで顧客シークレット・キーを使用する必要があります。 詳細については、「顧客シークレット・キーの使用」を参照してください。 |
|
Google Cloud Storage |
ソース・ファイルがGoogle Cloud Storageにある場合、またはGoogle Cloud Storage APIをコールしている場合は、デフォルトのGoogleプロジェクトを設定し、HMACキーを取得して、Google Cloud Storage S3-compatible URLで提供する資格証明を作成する必要があります。 ユーザー名としてHMACキーIDを使用し、パスワードとしてHMACシークレットを使用します。 |
|
Wasabiホット・クラウド・ストレージ |
ソース・ファイルがWasabi Hot Cloud Storageに存在する場合、またはWasabi Hot Cloud Storage APIをコールしている場合は、S3互換のURLを提供するための資格証明を作成するためのアクセス・キーが必要です。 Wasabi Hot Cloud Storageアクセス・キーをユーザー名として、Wasabi Hot Cloud Storageシークレット・キーをパスワードとして使用します。 詳細については、「Wasabi APIアクセス・キー・セットの作成」を参照してください。 |
AWS Amazonリソース名(ARN)資格証明
ソース・ファイルがAmazon S3に存在するか、AWS APIを呼び出す場合は、paramsを使用してAmazonリソース名(ARN)のパラメータを指定します。
| パラメータ | 値 |
|---|---|
aws_role_arn |
AWSロールを識別するAmazonリソース名(ARN)を指定します。 資格証明の作成時にこのパラメータが指定されていない場合、 |
external_id_type |
オプションで、次のいずれかを指定してAutonomous DatabaseコンパートメントOCID、データベースOCIDまたはテナンシOCIDを使用するように 資格証明の作成時にこのパラメータを指定しない場合、デフォルト値は |
たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'MY_CRED',
params => JSON_OBJECT(
'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
'external_id_type' value 'database_ocid'));
END;
/
GitHub個人アクセス・トークン
ソース・ファイルがGitHubリポジトリに存在する場合、またはGitHub APIをコールする場合、usernameはGitHub電子メールで、passwordはGitHub個人アクセス・トークンです。 詳細については、「個人アクセス・トークンの作成」を参照してください。
たとえば:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'MY_GITHUB_CRED',
username => 'user@example.com',
password => 'your_personal_access_token' );
END;
/
Google AnalyticsまたはGoogle BigQuery資格証明
Google AnalyticsまたはGoogle BigQueryにアクセスする場合は、paramsパラメータを使用して、Google OAuth 2.0資格証明パラメータを指定します。
| パラメータ | 値 |
|---|---|
gcp_oauth2 |
次のパラメータとその値を含むJSONオブジェクトを使用して、Google AnalyticsまたはGoogle BigQueryのOAuth 2.0アクセスを指定します:
Google OAuth資格証明の詳細は、「OAuth 2.0を使用したGoogle APIへのアクセス」を参照してください。 |
たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'GOOGLE_BIGQUERY_CRED',
params => JSON_OBJECT('gcp_oauth2' value
JSON_OBJECT(
'client_id' value 'client_id',
'client_secret' value 'client_secret',
'refresh_token' value 'refresh_token' )));
END;
/
Oracle Cloud Infrastructure Vaultを使用したVaultシークレット資格証明
Oracle Cloud Infrastructure Vaultを使用してボールト・シークレット資格証明を作成するには、paramsパラメータを使用して必要なパラメータを指定します:
-
username: OCI Swiftパスワードのユーザー名など、任意のタイプのユーザー名/パスワード資格証明のユーザー名を指定します。 たとえば、ユーザー名がscottで、パスワードが「パスワード」であるSwift資格証明がある場合は、usernameパラメータとしてscottを指定します。 -
secret_id: ボールトのシークレットIDです。 ボールト・シークレットOCIDとしてsecret_id値を指定します。 詳細については、「Vaultの概要」を参照してください。 -
region: oracleクラウド・リージョン識別子を指定するオプションのパラメータです。 リージョン(指定されている場合)は、Oracle Cloud Infrastructure Vaultシークレットが配置されているロケーションを示します。デフォルトでは、
CREATE_CREDENTIALは、secret_idのリージョン・キーからマップされたregionを使用します。 リージョンの例は、us-ashburn-1です。リージョンの完全なリストは、「リージョンと可用性ドメイン」を参照してください。
たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'OCI_SECRET_CRED',
params => JSON_OBJECT(
'username' value 'scott',
'region' value 'us-ashburn-1',
'secret_id' value 'ocid1.vaultsecret.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa'));
END;
/
Oracle Cloud Infrastructure Vaultシークレットを使用してボールト・シークレットを格納するためのノート:
- Oracle Cloud Infrastructure VaultをAutonomous Databaseインスタンスで使用する場合は、
DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPALでプリンシパル認証を有効にする必要があります。 -
Oracle Cloud Infrastructureで、シークレットにアクセスするには、リソース・プリンシパルのポリシーを指定する必要があります。
ボールト・シークレット資格証明を作成するには、DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。
Azure Key Vaultを使用したVaultシークレット資格証明
Azure Key Vault資格証明を作成するには、paramsパラメータを使用して必要なパラメータを指定します:
-
username: キーに関連付けられたユーザー名を指定します。 -
secret_id: シークレット名を指定します。 -
azure_vault_name: シークレットがあるボールトの名前を指定します。
詳細については、「キー・ボールトの作成」を参照してください。
ボールト・シークレット資格証明を作成するには、DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。
「AWSシークレット・マネージャ」を使用したVaultシークレット資格証明
「AWSシークレット・マネージャ」を使用してボールト・シークレット資格証明を作成するには、paramsパラメータを使用して必要なパラメータを指定します:
-
username: AWSシークレット・マネージャアクセス・キーを指定します。 -
secret_id: AWSシークレット・マネージャ AWS ARNです。 -
region: (オプション)ボールトおよびシークレットが配置されているAWSサービス・リージョンを指定します。 AWSリージョンの例は「us-east-2」です。 デフォルトのregionは、secret_idパラメータでARNで指定されたリージョンです。詳細については、「AWSリージョンの管理」を参照してください。
ボールト・シークレット資格証明を作成するには、
DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。
「GCPシークレット・マネージャ」を使用したVaultシークレット資格証明
「GCPシークレット・マネージャ」資格証明を作成するには、paramsパラメータを使用して必要なパラメータを指定します:
-
username: シークレットに関連付けられたユーザー名を指定します。 -
secret_id: 秘密の名前。 -
gcp_project_id: シークレットが存在するプロジェクトのIDを指定します。
詳細については、「秘密マネージャ」を参照してください。
ボールト・シークレット資格証明を作成するには、DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。
DROP_CREDENTIALプロシージャ
このプロシージャは、既存の資格証明をAutonomous Databaseから削除します。
構文
DBMS_CLOUD.DROP_CREDENTIAL (
credential_name IN VARCHAR2);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
削除される資格証明の名前。 |
REFRESH_VAULT_CREDENTIALプロシージャ
このプロシージャは、ボールト・シークレット資格証明のボールト・シークレットをリフレッシュします。
このプロシージャを使用すると、ボールト・シークレット資格証明のボールト・シークレットをすぐにリフレッシュして、指定したcredential_nameの最新バージョンのボールト・シークレットを取得できます。
構文
DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL (
credential_name IN VARCHAR2);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
リフレッシュする資格証明の名前。 |
使用上のノート
-
ADMINユーザーは、dba_credentials表を問い合せて、すべての資格証明を参照できます。 -
ALL_CREDENTIALSビューから資格証明をリストできます。 たとえば、次のコマンドを実行して資格証明をリストします:SELECT credential_name, username, comments FROM all_credentials;
例
BEGIN
DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL(
credential_name => 'AZURE_SECRET_CRED');
END;
/
UPDATE_CREDENTIALプロシージャ
このプロシージャは、指定されたcredential_nameの新しい値で属性を更新します。
格納済資格証明は、クラウド内に存在する外部データを問い合せる場合や、credential_nameパラメータを持つDBMS_CLOUDプロシージャを使用する場合に使用します。
構文
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
更新する資格証明の名前。 |
|
|
更新する属性の名前。 ユーザー名/パスワード・タイプの資格証明の場合、有効な Amazon ARNの資格証明の場合、有効な Google BigQueryまたはGoogle Analyticsの資格証明の場合、有効な 使用しているボールトに応じて、Vaultシークレット資格証明の場合、有効な
attribute値は:
詳細については、「CREATE_CREDENTIALプロシージャ」を参照してください。 |
|
|
指定された属性の新しい値です。 |
使用上のノート
-
ユーザー名の値では大/小文字が区別されます。 二重引用符やスペースは使用できません。
-
ADMINユーザーは、dba_credentialsを問い合せることで、すべての資格証明を表示できます。 -
資格証明を作成する必要があるのは、クラウド・サービスの資格証明が変更されないかぎりです。 資格証明を保存したら、
credential_nameパラメータを必要とするDBMS_CLOUDプロシージャで同じ資格証明名を使用できます。 -
ALL_CREDENTIALSビューから資格証明をリストできます。 たとえば、次のコマンドを実行して資格証明をリストします:SELECT credential_name, username, comments FROM all_credentials;
例
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/
オブジェクトおよびファイル用のDBMS_CLOUD
DBMS_CLOUDパッケージ内のオブジェクトおよびファイル管理用のサブプログラム。
| サブプログラム | 説明 |
|---|---|
| このプロシージャは、クラウド・オブジェクト・ストレージから、またはディレクトリ内のファイルから、既存のSODAコレクションにデータをロードします。 | |
| このプロシージャは、クラウド・オブジェクト・ストレージから、またはディレクトリ内のファイルから、既存のAutonomous Database表にデータをロードします。 | |
formatパラメータtypeを値orc、parquetまたはavroに設定したこのプロシージャは、クラウドのORC、ParquetまたはAvroファイルから、またはディレクトリ内のORC、ParquetまたはAvroファイルから、既存のAutonomous Database表にデータをロードします。
テキスト・ファイルと同様に、データはソースORC、ParquetまたはAvroファイルから既存の内部表にコピーされます。 |
|
| このプロシージャは、クラウド・オブジェクト・ストレージ・バケット間でファイルをコピーします。 | |
| CREATE_CLOUD_TABLEプロシージャ |
このプロシージャは、すべての永続データがOracle管理オブジェクト・ストレージに格納されるクラウド表を作成します。 |
| このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルに外部表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 | |
| CREATE_EXTERNAL_TABLE Apache Icebergのプロシージャ |
このプロシージャは、サポートされている構成で「Apache Iceberg」表の外部表を作成します。 |
formatパラメータtypeを値parquet、orcまたはavroに設定したこのプロシージャは、クラウドまたはディレクトリ内のParquet、ORCまたはAvro形式のファイルを使用して外部表を作成します。
これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 |
|
| このプロシージャは、クラウド内のファイルに外部パーティション表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 | |
|
このプロシージャは、オブジェクト・ストア・ファイルにテキスト索引を作成します。 |
|
| このプロシージャは、ハイブリッド・パーティション表を作成します。 これにより、Autonomous Databaseのハイブリッド・パーティション・データに対して問合せを実行できます。 | |
このプロシージャは、スキーマ内のuser_load_operations表に記録されているすべてのデータ・ロード操作をクリアするか、指定されたタイプのすべてのデータ・ロード操作をクリアします。これは、typeパラメータで示されます。
|
|
| このプロシージャは、Autonomous Databaseの指定したディレクトリから指定したファイルを削除 | |
| このプロシージャは、オブジェクト・ストア上で指定されたオブジェクトを削除します。 | |
|
このプロシージャは、 |
|
|
このプロシージャは、オブジェクト・ストア・ファイルのテキスト索引を削除します。 |
|
このプロシージャは、問合せの結果に基づいて、Autonomous Databaseからクラウド内のファイルにデータをエクスポートします。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。 指定されたformatパラメータのtypeオプションに応じて、プロシージャは、「CSV、JSON、ParquetまたはXML」 「;または、ORACLE_DATAPUMPアクセス・ドライバを使用してデータをダンプ・ファイルに書き込む」のオプションを使用して行をテキストとしてクラウド・オブジェクト・ストアにエクスポートします。 |
|
このプロシージャはオーバーロードされています。 プロシージャ・フォームは、Cloud Object Storageからオブジェクトを読み取り、それをAutonomous Databaseにコピーします。 関数フォームは、Cloud Object Storageからオブジェクトを読み取り、BLOBをAutonomous Databaseに返します。
|
|
| この関数は、指定されたディレクトリ内のファイルをリストします。 結果には、ファイル名と、ファイル・サイズ(バイト単位)、作成タイムスタンプ、最終変更タイムスタンプなどのファイルに関する追加メタデータが含まれます。 | |
| この関数は、オブジェクト・ストア上の指定されたロケーションにあるオブジェクトをリストします。 結果には、オブジェクト名、およびオブジェクトに関する追加メタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 | |
| この手順では、オブジェクトをクラウド・オブジェクト・ストレージ・バケット間で移動します。 | |
このプロシージャはオーバーロードされています。 一方の形式では、Autonomous DatabaseからCloud Object Storageにファイルがコピーされます。 別の形式では、Autonomous DatabaseからCloud Object StorageにBLOBがコピーされます。
|
|
|
この手順では、クラウド内のファイルから外部パーティション表の更新を簡略化します。 この手順は、新しいパーティションが追加されるか、外部パーティション表のオブジェクト・ストア・ソースからパーティションが削除されるたびに実行します。 |
|
| このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表用に指定された形式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 | |
| このプロシージャは、外部パーティション表のソース・ファイルを検証し、ログ情報を生成して、外部表のために指定された形式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 | |
| このプロシージャは、ハイブリッド・パーティション表のソース・ファイルを検証し、ログ情報を生成して、ハイブリッド表に指定された形式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 |
COPY_COLLECTIONプロシージャ
このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリからSODAコレクションにデータをロードします。 指定したSODAコレクションが存在しない場合は、プロシージャによって作成されます。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
構文
DBMS_CLOUD.COPY_COLLECTION (
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.COPY_COLLECTION (
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER
);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
データがロードされるSODAコレクションの名前。 この名前のコレクションがすでに存在する場合は、指定されたデータがロードされます。存在しない場合は、新しいコレクションが作成されます。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 このパラメータは、 |
|
|
このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば: URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名をカンマで区切ったリストを使用することもできます。 ディレクトリを指定する形式: ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用 : たとえば : 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 たとえば: 引用符を含めるには、2つの引用符を使用します。 たとえば: |
|
|
ソース・ファイルの形式を記述するオプション。 これらのオプションはJSON文字列として指定されます。 サポートされている形式は次のとおりです: JSONデータの前述の形式とは別に、Autonomous Databaseでは他の形式もサポートされます。 Autonomous Databaseでサポートされているフォーマット引数のリストは、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。 |
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
例
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'OBJ_STORE_CRED',
username => 'user_name@oracle.com',
password => 'password'
);
DBMS_CLOUD.COPY_COLLECTION(
collection_name => 'myCollection',
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'
);
END;
/
COPY_DATAプロシージャ
このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルから、既存のAutonomous Database表にデータをロードします。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
構文
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2,
field_list IN CLOB,
format IN CLOB);
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
schema_name IN VARCHAR2 DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
operation_id OUT NOCOPY NUMBER);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベースのターゲット表の名前。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 このパラメータは、 |
|
|
このパラメータでは、次のいずれかを指定します:
クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 クラウド・ソース・ファイルのURI このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば: URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
表ハイパーリンクURL 表ハイパーリンクは、次の方法で使用できます:
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名をカンマで区切ったリストを使用することもできます。 ディレクトリを指定する形式: ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用 : たとえば : 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 たとえば: 引用符を含めるには、2つの引用符を使用します。 たとえば: |
|
|
ターゲット表が存在するスキーマの名前。 デフォルト値はNULLで、ターゲット表はプロシージャを実行しているユーザーと同じスキーマにあります。 |
|
|
ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値はNULLで、フィールドとそのデータ型はターゲット表の定義によって決まります。 この引数構文は、通常のOracle外部表の
|
|
|
ソース、ログ、および不正なファイルの形式を説明するオプション。 オプションのリストと値の指定方法については、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。 「Avro、ORCまたはParquet」ファイル形式のオプションについては、「Avro、ORCまたはParquet用のDBMS_CLOUDパッケージ形式オプション」を参照してください。 |
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
使用上のノート
デフォルトのレコード・デリミタはdetected newlineです。 detected newlineを使用すると、DBMS_CLOUDは、レコード・デリミタとして使用する正しい改行文字を自動的に検出しようとします。 DBMS_CLOUDは、最初にWindows改行文字\r\nを検索します。 Windows改行文字が見つかった場合は、プロシージャ内のすべてのファイルのレコード・デリミタとして使用されます。 Windows改行文字が見つからない場合、DBMS_CLOUDはUNIX/Linux改行文字\nを検索し、それが見つかった場合は、プロシージャ内のすべてのファイルのレコード・デリミタとして\nを使用します。 ソース・ファイルで異なるレコード・デリミタの組合せを使用する場合、「KUP-04020: found record longer than buffer size supported」などのエラーが発生することがあります。 この場合、ソース・ファイルを同じレコード・デリミタを使用するように変更するか、同じレコード・デリミタを使用するソース・ファイルのみを指定する必要があります。
recorddelmiter形式オプションの詳細は、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。
例
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/「Avro、ORCまたはParquet」ファイル用のCOPY_DATAプロシージャ
formatパラメータtypeを値「avro、orcまたはparquet」に設定したこのプロシージャは、クラウドの「Avro、ORCまたはParquet」ファイルまたはディレクトリ内のファイルから既存のAutonomous Database表にデータをロードします。
テキスト・ファイルと同様に、データはソース「Avro、ORCまたはParquet」ファイルから既存の内部表にコピーされます。
構文
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2 DEFAULT,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベースのターゲット表の名前。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 このパラメータは、 |
|
|
このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば: URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名をカンマで区切ったリストを使用することもできます。 ディレクトリを指定する形式: ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用 : たとえば : 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 たとえば: 引用符を含めるには、2つの引用符を使用します。 たとえば: |
|
|
ターゲット表が存在するスキーマの名前。 デフォルト値はNULLで、ターゲット表はプロシージャを実行しているユーザーと同じスキーマにあります。 |
|
|
「Avro、ORCまたはParquet」ファイルでは無視されます。 ソース内のフィールドは、外部表の列を名前で照合します。 ソース・データ型は、外部表の列データ型に変換されます。 ORCファイルについては、「DBMS_CLOUDパッケージORCからOracleデータ型へのマッピング」を参照してください Parquetファイルの場合、マッピングの詳細は「DBMS_CLOUDパッケージParquetからOracleデータ型マッピング」を参照してください。 Avroファイルの場合、マッピングの詳細は、「DBMS_CLOUDパッケージAvroからOracleデータ型へのマッピング」を参照してください。 |
|
|
ソース・ファイルの形式を記述するオプション。 「Avro、ORCまたはParquet」ファイルでは、次のオプションのみがサポートされています: 「Avro、ORCまたはParquet用のDBMS_CLOUDパッケージ形式オプション」を参照してください。 |
使用上のノート
-
他のデータ・ファイルと同様に、「Avro、ORCおよびParquet」データ・ロードでは、表
dba_load_operationsおよびuser_load_operationsで表示可能なログが生成されます。 各ロード操作は、ログを含む表を示す、dba[user]_load_operationsにレコードを追加します。ログ表にはロードに関するサマリー情報が表示されます。
-
「Avro、ORCまたはParquet」では、
formatパラメータtypeが値「avro、orcまたはparquet」に設定されている場合、BADFILE_TABLE表は常に空です。-
Parquetファイルの場合、
PRIMARY KEY制約エラーによりORAエラーがスローされます。 -
列のデータに変換エラーが発生した場合、たとえば、変換された値を格納するのに十分な大きさがターゲット列にない場合、その列の値は
NULLに設定されます。 これにより、拒否されたレコードが生成されることはありません。
-
COPY_OBJECTプロシージャ
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットまたはフォルダから別のバケットまたはフォルダにオブジェクトをコピーします。
ソースおよびターゲットのバケットまたはフォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに置くことができます。
ソースとターゲットが個別のオブジェクト・ストアにある場合、または同じクラウド・プロバイダを持つ異なるアカウントがある場合は、ソースとターゲットのロケーションに個別の資格証明名を指定できます。
ターゲット資格証明名が指定されていない場合、ソース資格証明名はデフォルトでターゲットのロケーションでも使用されます。
構文
DBMS_CLOUD.COPY_OBJECT (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);パラメータ
| パラメータ | 説明 |
|---|---|
|
|
ソース・クラウドのオブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ソースのオブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ターゲット・オブジェクト・ストアのURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ターゲットのクラウドのオブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
例
BEGIN
DBMS_CLOUD.COPY_OBJECT (
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
CREATE_CLOUD_TABLEプロシージャ
このプロシージャは、クラウド表を作成します。 すべてのクラウド表データは、Oracle管理オブジェクト・ストレージに格納されます(クラウド表では、メタデータのみがデータベースに格納されます)。
構文
DBMS_CLOUD.CREATE_CLOUD_TABLE (
table_name IN VARCHAR2,
column_list IN CLOB,
params IN CLOB);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
クラウド表の名前。 |
|
|
クラウド表の列名およびデータ型のカンマ区切りリスト。 |
使用上のノート
-
DEFAULT属性:column_listには、通常のCREATE TABLEのDEFAULT句のように機能するDEFAULT句を含めることができます。DEFAULT句の動作の詳細は、CREATE TABLEを参照してください。 -
クラウド表を削除するには、
DROP TABLEを使用します。 クラウド表はごみ箱をサポートしていません。たとえば:
DROP TABLE CLOUD_TAB1; -
クラウド表に対して、
SELECT、INSERTおよびUPDATE権限を付与できます。 他の権限はクラウド表に付与できません。詳細については、「権限およびロール認可の構成」を参照してください。
例
EXEC DBMS_CLOUD.CREATE_CLOUD_TABLE( 'CLOUD_TAB1', 'I INTEGER, J INTEGER' );
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE(
table_name => 'CLOUD_TABLE_WITH_DEFAULT',
column_list => 'I INTEGER,
A VARCHAR2(32) DEFAULT ''ABC''' );
END;
/
CREATE_EXTERNAL_PART_TABLEプロシージャ
このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルから、外部パーティション表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
|
個々のパーティションのロケーション情報など、完全なパーティション化句を指定します。
|
|
|
このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば:
パラメータ URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。
|
|
|
外部表の列名とデータ型のカンマ区切りリスト。 このパラメータには、
|
|
|
ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値はNULLで、フィールドとそのデータ型はcolumn_listパラメータによって決まります。 この引数構文は、通常のOracle外部表の |
|
|
フォーマット・オプション
データファイルが構造化されておらず、 ハイブ形式に基づかないオブジェクト名の場合、 ソース・ファイルの形式を記述するすべての |
使用上のノート
-
partitioning_clauseとfile_uri_listの両方のパラメータでこのプロシージャをコールすることはできません。 -
column_listパラメータの指定は、Avro、ParquetまたはORCデータ・ファイルなどの構造化データ・ファイルではオプションです。column_listを指定しない場合は、formatパラメータpartition_columnsオプションにnameとtypeの両方を含める必要があります。 -
CSVテキスト・ファイルなどの非構造化データ・ファイルには、
column_listパラメータが必要です。 -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEの手順では、サポートされているクラウド・オブジェクト・ストレージ・サービスで、次のような外部パーティション化されたファイルがサポートされます:-
Oracle Cloud Infrastructureオブジェクト・ストレージ
-
Azure BlobストレージまたはAzure Data Lakeストレージ
-
Amazon S3
-
Amazon S3-Compatible(次を含む): Oracle Cloud Infrastructure Object Storage、Google Cloud StorageおよびWasabi Hot Cloud Storage。
-
GitHubリポジトリ
詳細については、「DBMS_CLOUD URIの書式」を参照してください。
-
-
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEは、ローカル・ファイル・システムまたはネットワーク・ファイル・システムのディレクトリ内の外部パーティション・ファイルをサポートします。 -
file_uri_listパラメータを指定してDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEをコールする場合、クラウド・オブジェクト・ストアのファイル名で指定された列の型は、次のいずれかのタイプである必要があります:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9) -
デフォルトのレコード・デリミタは
detected newlineです。detected newlineを使用すると、DBMS_CLOUDは、レコード・デリミタとして使用する正しい改行文字を自動的に検出しようとします。DBMS_CLOUDは、最初にWindows改行文字\r\nを検索します。 Windows改行文字が見つかった場合は、プロシージャ内のすべてのファイルのレコード・デリミタとして使用されます。 Windows改行文字が見つからない場合、DBMS_CLOUDはUNIX/Linux改行文字\nを検索し、それが見つかった場合は、プロシージャ内のすべてのファイルのレコード・デリミタとして\nを使用します。 ソース・ファイルで異なるレコード・デリミタの組合せを使用する場合、「KUP-04020: found record longer than buffer size supported」などのエラーが発生することがあります。 この場合、ソース・ファイルを同じレコード・デリミタを使用するように変更するか、同じレコード・デリミタを使用するソース・ファイルのみを指定する必要があります。recorddelmiter形式オプションの詳細は、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。 -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEで作成した外部パーティション表には、2つの非表示列file$pathおよびfile$nameが含まれます。 これらの列は、レコードの起点となるファイルの識別に役立ちます。-
file$path: オブジェクト名の先頭までのファイル・パス・テキストを指定します。 -
file$name: バケット名の後に続くすべてのテキストを含むオブジェクト名を指定します。
-
例
partitioning_clauseパラメータを使用する例:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
非構造化データ・ファイルでfile_uri_listおよびcolumn_listパラメータを使用する例:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv',
column_list => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)',
field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
format => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/
column_listパラメータのないfile_uri_listを構造化データ・ファイルで使用する例:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
CREATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルから外部表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 このパラメータは、 |
|
|
このパラメータでは、次のいずれかを指定します:
クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば:
URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
表ハイパーリンクURL 表ハイパーリンクURLを使用して、次の方法で外部表を作成できます:
ディレクトリ
ノート: 表ハイパーリンクURLでは、ワイルドカードはサポートされていません。1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名をカンマで区切ったリストを使用することもできます。 ディレクトリを指定する形式: ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用 : たとえば : 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 たとえば: 引用符を含めるには、2つの引用符を使用します。 たとえば: |
|
|
外部表の列名とデータ型のカンマ区切りリスト。 |
|
|
ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値は、NULLです。この値は、フィールドとそのデータ型が |
|
|
ソース・ファイルの形式を記述するオプション。 オプションのリストと値の指定方法については、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。 「Avro、ORCまたはParquet」形式のファイルについては、「Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャ」を参照してください。 |
使用上のノート
-
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_TABLEは、サポートされているクラウド・オブジェクト・ストレージ・ソース内の次のような外部パーティション・ファイルをサポートしています:-
Oracle Cloud Infrastructureオブジェクト・ストレージ
-
Azure BlobストレージまたはAzure Data Lakeストレージ
-
Amazon S3
-
Amazon S3-Compatible(次を含む): Oracle Cloud Infrastructure Object Storage、Google Cloud StorageおよびWasabi Hot Cloud Storage。
-
GitHubリポジトリ
-
表ハイパーリンクURLを含むOracle Cloud Infrastructure Object Storage
資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストア上にある必要があります。
詳細については、「DBMS_CLOUD URIの書式」を参照してください。
-
-
デフォルトのレコード・デリミタは
detected newlineです。detected newlineを使用すると、DBMS_CLOUDは、レコード・デリミタとして使用する正しい改行文字を自動的に検出しようとします。DBMS_CLOUDは、最初にWindows改行文字\r\nを検索します。 Windows改行文字が見つかった場合は、プロシージャ内のすべてのファイルのレコード・デリミタとして使用されます。 Windows改行文字が見つからない場合、DBMS_CLOUDはUNIX/Linux改行文字\nを検索し、それが見つかった場合は、プロシージャ内のすべてのファイルのレコード・デリミタとして\nを使用します。 ソース・ファイルで異なるレコード・デリミタの組合せを使用する場合、「KUP-04020: found record longer than buffer size supported」などのエラーが発生することがあります。 この場合、ソース・ファイルを同じレコード・デリミタを使用するように変更するか、同じレコード・デリミタを使用するソース・ファイルのみを指定する必要があります。recorddelimiter形式オプションの詳細は、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。
例
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
CREATE_EXTERNAL_TABLE Apache Icebergのプロシージャ
このプロシージャは、サポートされている構成で「Apache Iceberg」表の外部表を作成します。
- AWS上のIceberg表:
- SparkまたはAthenaで作成されたAWS Glueデータ・カタログに登録されたIceberg表。
詳細は、AWS Glueコネクタを使用して、ACIDトランザクションを含む「Apache Iceberg」表の読取りおよび書込みを行い、タイム・トラベルを実行および「Icebergの使用」表を参照してください。
- ルート・メタデータ・ファイルのURLを直接指定して、AWS S3に格納されているIceberg表。
- SparkまたはAthenaで作成されたAWS Glueデータ・カタログに登録されたIceberg表。
- OCI上のIcebergの表:
- Hadoopカタログを使用してOCIデータ・フローで生成されたIceberg表。
詳細は、「Oracleデータ・フローの例」および「Hadoopカタログの使用」を参照してください。
- ルート・メタデータ・ファイルのURLを直接指定して、OCIオブジェクト・ストレージに格納されているIceberg表。
- Hadoopカタログを使用してOCIデータ・フローで生成されたIceberg表。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
データ・ファイル、メタデータ・ファイルおよびIcebergカタログ(使用する場合)へのアクセスに使用される資格証明の名前。 AWSおよびOCI構成の場合、資格証明は「CREATE_CREDENTIALプロシージャ」の説明に従って作成する必要があります。 AWS Amazonリソース名(ARN)資格証明は現在サポートされていません。 |
|
|
Icebergカタログが指定されている場合、NULLである必要があります(次のformatパラメータを参照)。 icebergカタログを使用しない場合、file_uri_listにはicebergメタデータ・ファイルへのURIが含まれている必要があります。
|
|
|
列名と型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 列名は、基礎となるデータ・ファイル(Parquet、Avro、ORC)にある名前と一致します。 Oracleデータ型は、Icebergデータ型とParquetデータ型、Avroデータ型およびORCデータ型の間のParquet/Avro/ORCマッピングを使用して導出されます。 したがって、ユーザーは |
|
|
列名およびデータ型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 |
|
|
詳細は、OCIデータ・フロー・サンプルでのIcebergのサポートおよびDBMS_CLOUD URI形式を参照してください。 |
AWS Glue Catalogを使用したAWS Iceberg表のフォーマット・パラメータの例
AWS Glue Catalogを使用してAWS Iceberg表に表を作成する場合のformatパラメータの例を次に示します。
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
access_protocolパラメータには、次の2つの要素を持つJSONオブジェクトが含まれます:
protocol_type: 'iceberg'である必要がありますprotocol_config: icebergカタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type:'aws_glue'である必要がありますiceberg_glue_region: カタログ・リージョン('us-west-1'など)iceberg_table_path:glue database.glue table nameパス。
メタデータ・ファイルURIを使用したAWS Iceberg表のフォーマット・パラメータの例
formatパラメータの例を次に示します。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')HadoopCatalogカタログを使用したOCI Iceberg表のフォーマット・パラメータの例
formatパラメータは次のとおりです。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));access_protocolパラメータには、次の2つの要素を持つJSONオブジェクトが含まれます:
protocol_type:'iceberg'である必要がありますprotocol_config: icebergカタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type:'hadoop'である必要がありますiceberg_warehouse: 表の生成時に使用されるウェアハウス・ディレクトリ・パス(ネイティブURI形式)。iceberg_table_path: 表の作成時に使用されるdatabase_name.table nameパス。
メタデータ・ファイルのURIを使用したOCI Iceberg表のフォーマット・パラメータの例
formatパラメータの例を次に示します。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')access_protocolパラメータには、次のように1つの要素を持つJSONオブジェクトが含まれます。
protocol_type:'iceberg'である必要があります
「Avro、ORCまたはParquet」ファイル用のCREATE_EXTERNAL_TABLEプロシージャ
formatパラメータtypeを値「avro、orcまたはparquet」に設定したこのプロシージャは、クラウドまたはディレクトリ内の「Avro、ORCまたはParquet」形式のファイルを使用して外部表を作成します。
これにより、Autonomous Databaseから外部データに対する問合せを実行できます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 このパラメータは、 |
|
|
このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば: URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名をカンマで区切ったリストを使用することもできます。 ディレクトリを指定する形式: ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用 : たとえば : 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 たとえば: 引用符を含めるには、2つの引用符を使用します。 たとえば: |
|
|
(「オプション)これは」フィールドを指定すると、スキーマ、列およびデータ型が自動的に導出されることを指定する 「Avro、ORCまたはParquet」ソースに Parquetファイルの詳細は、「DBMS_CLOUDパッケージParquetからOracleデータ型マッピング」を参照してください。 ORCファイルの詳細は、「DBMS_CLOUDパッケージORCからOracleデータ型へのマッピング」を参照してください。 Avroファイルの詳細は、「DBMS_CLOUDパッケージAvroからOracleデータ型へのマッピング」を参照してください。 |
|
|
「Avro、ORCまたはParquet」ファイルでは無視されます。 ソース内のフィールドは、外部表の列を名前で照合します。 ソース・データ型は、外部表の列データ型に変換されます。 ORCファイルについては、「DBMS_CLOUDパッケージORCからOracleデータ型へのマッピング」を参照してください。 Parquetファイルの詳細は、「DBMS_CLOUDパッケージParquetからOracleデータ型マッピング」を参照してください。 Avroファイルの詳細は、「DBMS_CLOUDパッケージAvroからOracleデータ型へのマッピング」を参照してください。 |
|
|
「Avro、ORCまたはParquet」 |
ORCの例
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
Avroの例
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
Parquetの例
format => '{"type":"parquet", "schema": "all"}'format => json_object('type' value 'parquet', 'schema' value 'first')Oracle列名への「Avro、ORCまたはParquet」列名のマッピング
Oracle SQLでの列名のマッピングおよび列名の変換の使用方法の詳細は、「DBMS_CLOUDパッケージAvro、ORCおよびParquetからOracleへの列名のマッピング」を参照してください。
CREATE_EXTERNAL_TEXT_INDEXプロシージャ
このプロシージャは、オブジェクト・ストレージ・ファイルにテキスト索引を作成します。
CREATE_EXTERNAL_TEXT_INDEXプロシージャは、location_uriのロケーションで指定されたオブジェクト・ストレージ・ファイルにテキスト索引を作成します。 インデックスは、ロケーションURIのファイルで行われた新しい追加または削除に対して定期的にリフレッシュされます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);パラメータ
| パラメータ | 説明 |
|---|---|
|
|
クラウド・オブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。 パブリック、事前認証済または事前署名済バケットURIの場合、NULLを指定できます。 詳細については、「リソースにアクセスするためのポリシーおよびロールの構成」を参照してください。
|
location_uri |
このパラメータは、ソース・ファイルURIのカンマ区切りリストを指定します。 クラウド・ソース・ファイルURIのファイル名には、ワイルドカードと正規表現を使用できます。 このパラメータは必須です。 クラウド・ソース・ファイルのURI このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は 正規表現の使用例:
ワイルドカードの使用例:
URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
|
index_name |
location_uriのロケーションにあるファイル上に構築する索引の名前を指定します。
このパラメータは必須です。 |
|
|
追加の構成オプションを指定します。 オプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです:
次のメソッドを使用してストップ・ワードを指定できます:
|
例
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/CREATE_HYBRID_PART_TABLEプロシージャ
このプロシージャは、ハイブリッド・パーティション表を作成します。 これにより、クラウド内のデータベース・オブジェクトとファイル、またはディレクトリ内のデータベース・オブジェクトとファイルを使用して、Autonomous Databaseからハイブリッド・パーティション・データに対して問合せを実行できます。
構文
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
|
個々のパーティションのロケーション情報など、完全なパーティション化句を指定します。 ディレクトリを使用するには、パーティション化句で クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
|
|
|
外部表の列名とデータ型のカンマ区切りリスト。 |
|
|
ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値はNULLで、フィールドとそのデータ型はcolumn_listパラメータによって決まります。 この引数構文は、通常のOracle外部表の |
|
|
ソース・ファイルの形式を記述するオプション。 オプションのリストと値の指定方法については、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。 |
使用上のノート
-
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEの手順では、サポートされているクラウド・オブジェクト・ストレージ・サービスで、次のような外部パーティション化されたファイルがサポートされます:-
Oracle Cloud Infrastructureオブジェクト・ストレージ
-
Azure BlobストレージまたはAzure Data Lakeストレージ
-
Amazon S3
-
Amazon S3-Compatible(次を含む): Oracle Cloud Infrastructure Object Storage、Google Cloud StorageおよびWasabi Hot Cloud Storage。
-
GitHubリポジトリ
資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストア上にある必要があります。
詳細については、「DBMS_CLOUD URIの書式」を参照してください。
-
-
プロシージャ
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEは、ローカル・ファイル・システムまたはネットワーク・ファイル・システムのディレクトリ内のハイブリッド・パーティション・ファイルをサポートします。 -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEで作成した外部パーティション表には、2つの非表示列file$pathおよびfile$nameが含まれます。 これらの列は、レコードの起点となるファイルの識別に役立ちます。-
file$path: オブジェクト名の先頭までのファイル・パス・テキストを指定します。 -
file$name: バケット名の後に続くすべてのテキストを含むオブジェクト名を指定します。
-
例
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
table_name =>'HPT1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) external location
( ''&base_URL/file_11.txt'')
,
partition p2 values less than (2000) external location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000)
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
table_name => 'HPT1',
format => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
partitioning_clause => 'partition by range (B 2 ALANCE)
(partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
partition p3 values less than (3000))' );
END;
/DELETE_ALL_OPERATIONSプロシージャ
このプロシージャは、スキーマ内のuser_load_operations表に記録されているすべてのデータ・ロード操作をクリアするか、指定されたタイプのすべてのデータ・ロード操作をクリアします。これは、typeパラメータで示されます。
構文
DBMS_CLOUD.DELETE_ALL_OPERATIONS (
type IN VARCHAR DEFAULT NULL);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
削除する操作のタイプを指定します。 タイプ値は、
|
使用上のノート
-
このプロシージャは、現在実行中の操作(「実行中」ステータスの操作)を削除しません。
-
このプロシージャは、操作に関連付けられているロギング表およびログ・ファイルを削除します。
DELETE_FILEプロシージャ
このプロシージャは、指定したファイルをAutonomous Databaseの指定したディレクトリから削除します。
構文
DBMS_CLOUD.DELETE_FILE (
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE); パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Autonomous Databaseインスタンス上のディレクトリの名前。 |
|
|
削除されるファイルの名前。 |
force |
ファイルが存在しない場合は無視し、エラーを報告しません。 有効な値は |
ノート:
ADMIN以外のユーザーでDBMS_CLOUD.DELETE_FILEを実行するには、そのユーザーにファイルを含むディレクトリに対する書込み権限を付与する必要があります。 たとえば、ADMINとして次のコマンドを実行して、adb_userに書き込み権限を与えます: GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;例
BEGIN
DBMS_CLOUD.DELETE_FILE(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
DELETE_OBJECTプロシージャ
このプロシージャは、オブジェクト・ストア上で指定されたオブジェクトを削除します。
構文
DBMS_CLOUD.DELETE_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
object_uri |
削除するオブジェクトのオブジェクトまたはファイルURI。 URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。 |
force |
オブジェクトが存在しない場合は無視し、エラーを報告しません。 有効な値は |
例
BEGIN
DBMS_CLOUD.DELETE_OBJECT(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
DELETE_OPERATIONプロシージャ
このプロシージャは、スキーマのuser_load_operationsまたはdba_load_operations表に記録された、指定された操作IDのデータ・ロード・エントリをクリアします。
構文
DBMS_CLOUD.DELETE_OPERATION (
id IN NUMBER);パラメータ
| パラメータ | 説明 |
|---|---|
|
|
削除するログ・ファイル・エントリに関連付けられた操作IDを指定します。 |
使用上のノート
-
このプロシージャは、入力で指定された操作IDに関連付けられているロギング表およびログ・ファイルを削除します。
例
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);
DROP_EXTERNAL_TEXT_INDEXプロシージャ
このプロシージャは、オブジェクト・ストレージ・ファイルのテキスト索引を削除します。
DROP_EXTERNAL_TEXT_INDEXプロシージャは、CREATE_EXTERNAL_TEXT_INDEXプロシージャで作成された指定された索引を削除します。
構文
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name IN VARCHAR2,
);パラメータ
| パラメータ | 説明 |
|---|---|
index_name |
削除する索引の名前を指定します。 索引名は、索引の作成時に指定された名前と一致する必要があります。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name => 'EMP',
);
END;
/EXPORT_DATAプロシージャ
format typeパラメータに基づいて、このプロシージャは、ファイルをクラウドにエクスポートするか、「CSV、JSON、ParquetまたはXML」形式のテキスト・ファイルとしてディレクトリのロケーションにエクスポートするか、ORACLE_DATAPUMPアクセス・ドライバを使用してデータをOracle Datapumpダンプ・ファイルに書き込みます。
構文
DBMS_CLOUD.EXPORT_DATA (
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB,
query IN CLOB);
DBMS_CLOUD.EXPORT_DATA (
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL,
query IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 資格証明パラメータが含まれていない場合、これはディレクトリへの出力を指定します。 |
|
|
フォーマット・パラメータの値、および資格証明パラメータを含めるかどうかに応じて、様々な形式があります:
URIのフォーマットは、「DBMS_CLOUD URIの書式」の詳細は、使用しているクラウド・オブジェクト・ストレージ・サービスに依存しています。 |
|
|
エクスポート形式オプションを提供するJSON文字列。 サポートされるオプションは次のとおりです。
「EXPORT_DATAのDBMS_CLOUDパッケージ形式オプション」を参照してください。 |
|
|
このパラメータを使用して、必要なデータのみがエクスポートされるように SELECT warehouse_id, quantity FROM inventories
たとえば: SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
|
このパラメータを使用して、エクスポート操作の進行状況および最終ステータスを |
使用上のノート:
-
指定する
queryパラメータ値は、必要に応じて、結合または副問合せを含む問合せなどの拡張問合せにすることができます。 -
指定したフォーマット・パラメータに応じて、
DBMS_CLOUD.EXPORT_DATAは、指定された問合せの結果をクラウド・オブジェクト・ストアまたはディレクトリのロケーションに、次のいずれかの形式で出力します:-
「CSV、JSON、ParquetまたはXML」 files.
「CSV、JSON、ParquetまたはXML」出力ファイルでの
DBMS_CLOUD.EXPORT_DATAの使用の詳細は、「データをテキストとしてオブジェクト・ストアにエクスポート」および「ディレクトリへのデータのエクスポート」を参照してください。 -
ORACLE_DATAPUMPアクセス・ドライバを使用したダンプ・ファイルへのデータの書込み。
-
-
CSV、JSONまたはXML出力の場合、生成されたファイルに10MBのデータが含まれていると、新しい出力ファイルが作成されます。 ただし、結果データが10MB未満の場合は、データベース・サービスおよびAutonomous DatabaseインスタンスのECPU数(データベースがOCPUを使用する場合はOCPU)に応じて、複数の出力ファイルが存在する可能性があります。
詳細については、「テキスト出力のファイル・ネーミング(CSV、JSON、ParquetまたはXML)」を参照してください。
CSV、JSONまたはXMLのデフォルト出力ファイルのチャンク・サイズは10MBです。 この値は、
formatパラメータのmaxfilesizeオプションを使用して変更できます。 詳細については、「EXPORT_DATAのDBMS_CLOUDパッケージ形式オプション」を参照してください。 -
Parquet出力の場合、生成される各ファイルは128MB未満で、複数の出力ファイルを生成できます。 ただし、結果データが128MB未満の場合は、データベース・サービスおよびAutonomous DatabaseインスタンスのECPU数(データベースがOCPUを使用する場合はOCPU)に応じて、複数の出力ファイルが存在する場合があります。
詳細については、「テキスト出力のファイル・ネーミング(CSV、JSON、ParquetまたはXML)」を参照してください。
ORACLE_DATAPUMP出力の使用上の注意(formatパラメータtypeオプションdatapumpを指定したDBMS_CLOUD.EXPORT_DATA):
-
EXPORT_DATAは、デフォルトのロギング・ディレクトリとしてDATA_PUMP_DIRを使用します。 そのため、ORACLE_DATAPUMP出力を使用する場合は、DATA_PUMP_DIRに対する書込み権限が必要です。 -
formatパラメータtypeオプションdatapumpを指定したDBMS_CLOUD.EXPORT_DATAを使用したAutonomous Databaseエクスポートでは、Oracle Cloud Infrastructure Object Storage、Oracle Cloud Infrastructure Object Storage Classicオブジェクト・ストアまたはディレクトリ出力のみがサポートされます。 -
formatパラメータtypeオプションdatapumpでDBMS_CLOUD.EXPORT_DATAを指定すると、credential_nameパラメータ値をOCIリソース・プリンシパルにすることはできません。 -
Oracle Data Pumpでは、アップロードを高速化するために、各ダンプ・ファイル部分が小さいチャンクに分割されます。 Oracle Cloud Infrastructure Object Storageコンソールには、エクスポートするダンプ・ファイル部分ごとに複数のファイルが表示されます。 実際のダンプ・ファイルのサイズはゼロ(0)として表示され、関連するファイル・チャンクは10mb以下として表示されます。 たとえば:
Oracle Cloud Infrastructureコンソールから、またはOracle Cloud Infrastructure CLIを使用してゼロ・バイトのダンプ・ファイルをダウンロードしても、完全なダンプ・ファイルは提供されません。 オブジェクト・ストアから完全ダンプ・ファイルをダウンロードするには、curlなどのSwiftをサポートするツールを使用し、ユーザー・ログインおよびSwift認証トークンを指定します。exp01.dmp exp01.dmp_aaaaaa exp02.dmp exp02.dmp_aaaaaacurl -O -v -X GET -u 'user1@example.com:auth_token' \ https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp値が
datapumpのformatパラメータtypeをサポートするDBMS_CLOUDプロシージャを使用してファイルをインポートする場合は、プライマリ・ファイル名のみを指定する必要があります。 'datapump'形式タイプをサポートするプロシージャは、チャンクを自動的に検出してダウンロードします。DBMS_CLOUD.DELETE_OBJECTを使用すると、プロシージャがプライマリ・ファイルを削除するときにチャンクが自動的に検出および削除されます。 -
DBMS_CLOUD.EXPORT_DATAプロシージャは、次のように、指定したfile_uri_list値からダンプ・ファイルを作成します:-
さらに多くのファイルが必要になると、
file_uri_listから追加のファイルが作成されます。 -
このプロシージャは、ファイルを上書きしません。
file_uri_listにダンプ・ファイルが存在する場合、DBMS_CLOUD.EXPORT_DATAはエラーを報告します。 -
DBMS_CLOUD.EXPORT_DATAではバケットは作成されません。
-
-
DBMS_CLOUD.EXPORT_DATAで生成されるダンプ・ファイルの数は、プロシージャの実行時に決定されます。 生成されるダンプ・ファイルの数は、file_uri_listパラメータで指定するファイル名の数、およびインスタンスで使用可能なAutonomous Database OCPUの数、サービス・レベルおよびデータのサイズによって異なります。たとえば、1 OCPUのAutonomous Databaseインスタンスまたは
lowサービスを使用する場合、複数のファイル名を指定しても、単一のダンプ・ファイルは並列度なしでエクスポートされます。mediumまたはhighサービスで4 OCPU Autonomous Databaseインスタンスを使用する場合、ジョブはパラレルで実行でき、複数のファイル名を指定すると複数のダンプ・ファイルがエクスポートされます。 -
DBMS_CLOUD.EXPORT_DATAで作成したダンプ・ファイルは、Oracle Data Pumpimpdpを使用してインポートできません。 データベースに応じて、次のようにこれらのファイルを使用できます:-
Autonomous Databaseでは、
formatパラメータtypeを値'datapump'でサポートするDBMS_CLOUDプロシージャとともにダンプ・ファイルを使用できます。DBMS_CLOUD.COPY_DATAを使用してダンプ・ファイルをインポートするか、DBMS_CLOUD.CREATE_EXTERNAL_TABLEをコールして外部表を作成できます。 -
Oracle Database 19cオンプレミスなどの他のOracle Databaseでは、
ORACLE_DATAPUMPアクセス・ドライバを使用して、DBMS_CLOUD.EXPORT_DATAプロシージャで作成されたダンプ・ファイルをインポートできます。 詳細については、「ORACLE_DATAPUMPアクセス・ドライバを使用したデータのアンロードおよびロード」を参照してください。
-
-
指定する
queryパラメータ値は、必要に応じて、結合または副問合せを含む問合せなどの拡張問合せにすることができます。
ディレクトリへの出力を含むDBMS_CLOUD.EXPORT_DATAの使用上のノート
-
指定されたディレクトリが存在し、
ADMINユーザーとしてログインしているか、またはディレクトリへのWRITEアクセス権を持っている必要があります。 -
DBMS_CLOUD.EXPORT_DATAはディレクトリを作成しません。 -
このプロシージャは、ファイルを上書きしません。 たとえば、
file_uri_listにダンプ・ファイルが存在する場合、DBMS_CLOUD.EXPORT_DATAは次のようなエラーを報告します:ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
例
次の例は、typeパラメータの書式がdatapumpのDBMS_CLOUD.EXPORT_DATAを示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp',
format => json_object('type' value 'datapump', 'compression' value 'basic', 'version' value 'latest'),
query => 'SELECT warehouse_id, quantity FROM inventories'
);
END;
/
この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
次の例は、typeパラメータの書式がjsonのDBMS_CLOUD.EXPORT_DATAを示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
次の例は、xmlという値を持つtypeパラメータのフォーマットを持つDBMS_CLOUD.EXPORT_DATAを示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/次の例は、csvという値を持つtypeパラメータのフォーマットを持つDBMS_CLOUD.EXPORT_DATAを示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true, 'encryption' value ('user_defined_function' value 'ADMIN.decryption_callback')));
);
END;
/ 次の例は、typeパラメータの値がdatapumpのディレクトリのロケーションにデータをエクスポートするDBMS_CLOUD.EXPORT_DATAを示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA(
file_uri_list => 'export_dir:sales.dmp',
format => json_object('type' value 'datapump'),
query => 'SELECT * FROM sales'
);
END;
/
GET_OBJECTプロシージャおよびファンクション
このプロシージャはオーバーロードされています。 プロシージャ・フォームは、Cloud Object Storageからオブジェクトを読み取り、それをAutonomous Databaseにコピーします。 関数フォームは、Cloud Object Storageからオブジェクトを読み取り、BLOBをAutonomous Databaseに返します。
構文
DBMS_CLOUD.GET_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
|
オブジェクトまたはファイルURI。 URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。 |
|
|
データベース上のディレクトリ名。 脚注1表ハイパーリンクURLは次の方法で使用できます:
|
|
|
作成するファイルの名前を指定します。 ファイル名を指定しない場合は、 |
startoffset |
プロシージャが読込みを開始するオフセット(バイト単位)。 |
endoffset |
プロシージャが読込みを停止するまでのオフセット(バイト単位)。 |
|
|
オブジェクトの格納に使用する圧縮を指定します。 |
脚注1
ノート:
ADMIN以外のユーザーでDBMS_CLOUD.GET_OBJECTを実行するには、そのディレクトリに対するWRITE権限をそのユーザーに付与する必要があります。 たとえば、次のコマンドをADMINとして実行し、書込み権限をadb_userに付与します:
GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;
戻り値
関数フォームはオブジェクト・ストアから読み取り、DBMS_CLOUD.GET_OBJECTはBLOBを返します。
例
BEGIN
DBMS_CLOUD.GET_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
オブジェクト・ストアのファイルから文字データを読み取るには、次のようにします:
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
データベース内のBLOBのオブジェクト・ストアに格納されているイメージを追加するには、次のようにします:
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
LIST_FILESファンクション
この関数は、指定されたディレクトリ内のファイルをリストします。 結果には、ファイル名と、ファイル・サイズ(バイト単位)、作成タイムスタンプ、最終変更タイムスタンプなどのファイルに関する追加メタデータが含まれます。
構文
DBMS_CLOUD.LIST_FILES (
directory_name IN VARCHAR2)
RETURN TABLE;
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
データベース上のディレクトリ名。 このパラメータはワイルドカードをサポートしています。 |
使用上のノート
-
DBMS_CLOUD.LIST_FILESをADMIN以外のユーザーで実行するには、そのユーザーにディレクトリの読取り権限を付与する必要があります。 たとえば、ADMINとして次のコマンドを実行して、adb_userに読み取り権限を与えます:GRANT READ ON DIRECTORY data_pump_dir TO adb_user; -
これは、戻り型が
DBMS_CLOUD_TYPES.list_object_ret_tであるパイプライン表ファンクションです。 -
DBMS_CLOUD.LIST_FILESはチェックサム値を取得せず、このフィールドのNULLを戻します。 -
DBMS_CLOUD.LIST_FILESでは、directory:filename構文を使用してファイルのフィルタリングを選択的にサポートしています。 ファイル名ではワイルドカードがサポートされています。
例:
これは、各ファイルの行を返すパイプライン関数です。 たとえば、次の問合せを使用してこの関数を使用します。
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- ---------- --------------------- ---------------------
cwallet.sso 2965 2018-12-12T18:10:47Z 2019-11-23T06:36:54Z
ワイルドカードを使用した問合せの例:
DBMS_CLOUD.LIST_FILESをDIRECTORY:FILE構文とともに使用するには、ファイルを指定するか、ワイルドカードを使用します。*および?がサポートされるワイルドカード文字です。
例1:ワイルドカードを使用して、ディレクトリDATA_PUMP_DIRの"f"で始まるすべてのCSVファイルをリストします。
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');
例2:ファイル名を指定するディレクトリDATA_PUMP_DIR内のファイルf1.csvをリストします。
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');
LIST_OBJECTSファンクション
この関数は、オブジェクト・ストア上の指定されたロケーションにあるオブジェクトをリストします。 結果には、オブジェクト名、およびオブジェクトに関する追加メタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。
構文
DBMS_CLOUD.LIST_OBJECTS (
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
location_uri |
オブジェクト・ストレージ・バケットまたはフォルダURI。 URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。 ワイルド・カードは、URI内のファイルまたはサブフォルダを選択的にリストするためにサポートされています。 文字" ワイルドカードの使用例: |
使用上のノート
-
オブジェクト・ストアの機能によっては、
DBMS_CLOUD.LIST_OBJECTSは特定の属性の値を返しません。この場合、フィールドの戻り値はNULLです。サポートされているすべてのオブジェクトは、
OBJECT_NAME、BYTESおよびCHECKSUMのフィールドの戻り値を格納します。次の表では、
CREATEDおよびLAST_MODIFIEDby Object Storeフィールドのサポートを示します:オブジェクト・ストア CREATEDLAST_MODIFIEDOracle Cloud Infrastructureネイティブ タイムスタンプを戻します タイムスタンプを戻します Oracle Cloud Infrastructure Swift NULLを返すタイムスタンプを戻します Oracle Cloud Infrastructure Classic NULLを返すタイムスタンプを戻します Amazon S3 NULLを返すタイムスタンプを戻します Amazon S3-Compatible NULLを返すタイムスタンプを戻します Azure タイムスタンプを戻します タイムスタンプを戻します GitHubリポジトリ -
チェックサムの値は、MD5のチェックサムです。 これは、オブジェクトの内容によってコンピュートされる32文字の16進数です。
OCI$RESOURCE_PRINCIPAL資格証明を使用する場合、チェックサム値は異なる必要があります。 -
これは、戻り型が
DBMS_CLOUD_TYPES.list_object_ret_tであるパイプライン表ファンクションです。
例
これは、各オブジェクトの行を戻すパイプライン・ファンクションです。 たとえば、次の問合せを使用してこの関数を使用します。
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
MOVE_OBJECTプロシージャ
この手順では、オブジェクトをクラウド・オブジェクト・ストレージのバケットまたはフォルダ間で移動します。
ソースおよびターゲットのバケットまたはフォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに置くことができます。
ソースとターゲットが個別のオブジェクト・ストアにある場合、または同じクラウド・プロバイダを持つ異なるアカウントがある場合は、ソースとターゲットのロケーションに個別の資格証明名を指定できます。
ターゲット資格証明名が指定されていない場合、ソース資格証明名はデフォルトでターゲットのロケーションでも使用されます。
構文
DBMS_CLOUD.MOVE_OBJECT (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);パラメータ
| パラメータ | 説明 |
|---|---|
|
|
ソース・クラウドのオブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ソースのオブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ファイルの移動が必要なターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ターゲットのクラウドのオブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
例
BEGIN
DBMS_CLOUD.MOVE_OBJECT (
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
PUT_OBJECTプロシージャ
このプロシージャはオーバーロードされています。 一方の形式では、Autonomous DatabaseからCloud Object Storageにファイルがコピーされます。 別の形式では、Autonomous DatabaseからCloud Object StorageにBLOBがコピーされます。
構文
DBMS_CLOUD.PUT_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
|
オブジェクトまたはファイルURI。 URIの形式は、詳細は、「DBMS_CLOUD URIの書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。 |
|
|
Autonomous Database上のディレクトリ名。 脚注2 |
|
|
Autonomous Databaseからクラウド・オブジェクト・ストレージにコピーする |
|
|
指定されたディレクトリ内のファイルの名前。 |
|
|
オブジェクトの格納に使用する圧縮を指定します。 デフォルト値: |
脚注2
ノート:
ADMIN以外のユーザーでDBMS_CLOUD.PUT_OBJECTを実行するには、ディレクトリの読取り権限をそのユーザーに付与する必要があります。 たとえば、次のコマンドをADMINとして実行すると、adb_userに読み取り権限が与えられます。
GRANT READ ON DIRECTORY data_pump_dir TO adb_user;
例
データベース内処理後にBLOBデータを処理し、そのデータをオブジェクト・ストアのファイルに直接格納するには、次のようにします:
DECLARE
my_blob_data BLOB;
BEGIN
/* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
contents => my_blob_data));
END;
/
使用上のノート
Cloud Object Storageに応じて、転送するオブジェクトのサイズは次のように制限されます:
| Cloud Object Storageサービス | オブジェクト転送サイズ制限 |
|---|---|
|
Oracle Cloud Infrastructureオブジェクト・ストレージ |
50 GB |
|
Amazon S3 |
5 GB |
|
Azure BlobストレージまたはAzure Data Lakeストレージ |
256MB |
|
Amazon S3-Compatible |
オブジェクト・ストア・プロバイダによって設定されます。 詳細は、プロバイダのドキュメントを参照してください。 |
Oracle Cloud Infrastructureオブジェクト・ストアでは、資格証明を指定しないでパブリック・バケットにファイルを書き込むことはできません(Oracle Cloud Infrastructureではパブリック・バケットからオブジェクトをダウンロードできます)。 したがって、PUT_OBJECTを使用してOracle Cloud Infrastructureパブリック・バケットにオブジェクトを格納するには、有効な資格証明の資格証明名を指定する必要があります。
詳細については、「DBMS_CLOUD URIの書式」を参照してください。
SYNC_EXTERNAL_PART_TABLEプロシージャ
この手順では、クラウド内のファイルから外部パーティション表の更新を簡略化します。 この手順は、新しいパーティションが追加されるか、外部パーティション表のオブジェクト・ストア・ソースからパーティションが削除されるたびに実行します。
構文
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
ターゲット表の名前 |
|
|
ターゲット表が存在するスキーマの名前。 デフォルト値はNULLで、ターゲット表はプロシージャを実行しているユーザーと同じスキーマにあります。 |
|
|
新しいファイルにより、スキーマが変更される可能性があります。 サポートされている更新は次のとおりです: 新しい列、削除された列。 既存の列の更新(データ型の変更など)によってエラーがスローされます。 デフォルト値: False |
VALIDATE_EXTERNAL_PART_TABLEプロシージャ
このプロシージャは、外部パーティション表のソース・ファイルを検証し、ログ情報を生成して、外部表のために指定された形式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
構文
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
|
|
定義されている場合、特定のパーティションのみが検証されます。 指定しない場合、 |
|
|
定義されている場合、特定のサブパーティションのみが検証されます。 指定しない場合、 |
|
|
外部表が存在するスキーマの名前。 デフォルト値はNULLで、外部表はプロシージャを実行しているユーザーと同じスキーマにあります。 |
|
|
スキャンされる行数。 デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされます。 |
|
|
内部使用のみに対応しています。 このパラメータは使用しないでください。 |
|
|
行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は |
VALIDATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表用に指定された形式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
構文
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE(
table_name IN VARCHAR2,
operation_id OUT NOCOPY NUMBER,
schema_name IN VARCHAR2 DEFAULT NULL,
rowcount IN NUMBER DEFAULT 0,
stop_on_error IN BOOLEAN DEFAULT TRUE);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
|
|
外部表が存在するスキーマの名前。 デフォルト値はNULLで、外部表はプロシージャを実行しているユーザーと同じスキーマにあります。 |
|
|
スキャンされる行数。 デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされます。 |
|
|
行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は 外部表が「Avro、ORCまたはParquet」ファイルを参照している場合、検証は最初に拒否された行で停止します。 外部表で値「 |
使用上のノート
-
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLEは、パーティション化された外部表とハイブリッド・パーティション表の両方で動作します。 これにより、rowcountに到達するか、stop_on_errorが適用されるまで、すべての外部パーティションからデータが読み取られる可能性があります。 どちらのパーティションまたはパーティションの一部をどの順序で読み取るかを制御できません。
VALIDATE_HYBRID_PART_TABLEプロシージャ
このプロシージャは、ハイブリッド・パーティション表のソース・ファイルを検証し、ログ情報を生成して、ハイブリッド表に指定された形式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
構文
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
外部表の名前。 |
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
|
|
定義されている場合、特定のパーティションのみが検証されます。 指定しない場合は、 |
|
|
定義されている場合、特定のサブパーティションのみが検証されます。 指定しない場合、 |
|
|
外部表が存在するスキーマの名前。 デフォルト値はNULLで、外部表はプロシージャを実行しているユーザーと同じスキーマにあります。 |
|
|
スキャンされる行数。 デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされます。 |
|
|
内部使用のみに対応しています。 このパラメータは使用しないでください。 |
|
|
行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は |
バルク・ファイル管理用のDBMS_CLOUD
DBMS_CLOUDパッケージ内のバルク・ファイル操作のサブプログラム。
| サブプログラム | 説明 |
|---|---|
| BULK_COPYプロシージャ |
このプロシージャは、クラウド・オブジェクト・ストレージ・バケット間でファイルをコピーします。 |
| BULK_DELETEプロシージャ |
このプロシージャは、クラウド・オブジェクト・ストレージのバケットまたはフォルダからファイルを削除します。 |
| BULK_DOWNLOADプロシージャ |
このプロシージャは、クラウド・オブジェクト・ストア・バケットからAutonomous Databaseのディレクトリにファイルをダウンロードします。 |
| BULK_MOVEプロシージャ |
この手順では、クラウド・オブジェクト・ストレージ・バケット間でファイルを移動します。 |
| BULK_UPLOADプロシージャ |
このプロシージャは、Autonomous Databaseのディレクトリからクラウド・オブジェクト・ストレージにファイルをアップロードします。 |
BULK_COPYプロシージャ
この手順では、クラウド・オブジェクト・ストレージ・バケット間でファイルをバルク・コピーします。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
REGEXP_LIKE演算子と互換性のある正規表現パターンを使用して、削除するファイルのリストをフィルタできます。
ソースおよびターゲットのバケットまたはフォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに置くことができます。
ソースとターゲットが個別のオブジェクト・ストアにある場合、または同じクラウド・プロバイダを持つ異なるアカウントがある場合は、ソースとターゲットのロケーションに個別の資格証明名を指定できます。
デフォルトでは、ソース資格証明名はターゲットのロケーションでも使用されます。
構文
DBMS_CLOUD.BULK_COPY (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_COPY (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は 正規表現の使用例:
ワイルドカードの使用例:
URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
|
|
|
ファイルをコピーする必要があるターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 ソースのオブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ターゲットのクラウドのオブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、
詳細については、「REGEXP_LIKE条件」を参照してください。 |
|
|
ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです:
|
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
使用上のノート
-
ソースおよびターゲットのURIが同じオブジェクト・ストレージ・バケットまたはフォルダを指している場合、エラーが返されます。
例
BEGIN
DBMS_CLOUD.BULK_COPY (
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
BULK_DELETEプロシージャ
この手順では、クラウド・オブジェクト・ストレージからファイルを一括削除します。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。 REGEXP_LIKE演算子と互換性のある正規表現パターンを使用して、削除するファイルのリストをフィルタできます。
構文
DBMS_CLOUD.BULK_DELETE(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DELETE (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
Autonomous Databaseのオブジェクト・ストレージの場所を指すURIを指定します。 このパラメータは必須です。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、
詳細については、「REGEXP_LIKE条件」を参照してください。 |
|
|
ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです:
|
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
例
BEGIN
DBMS_CLOUD.BULK_DELETE (
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/
BULK_DOWNLOADプロシージャ
このプロシージャは、クラウド・オブジェクト・ストレージからAutonomous Databaseディレクトリにファイルをダウンロードします。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。 REGEXP_LIKE演算子と互換性のある正規表現パターンを使用して、ダウンロードするファイルのリストをフィルタできます。
構文
DBMS_CLOUD.BULK_DOWNLOAD (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DOWNLOAD (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
Autonomous Databaseのオブジェクト・ストレージの場所を指すURIを指定します。 このパラメータは必須です。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ファイルのダウンロード元のAutonomous Database上のディレクトリの名前。 このパラメータは必須です。 |
|
|
ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、
詳細については、「REGEXP_LIKE条件」を参照してください。 |
|
|
ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです:
|
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
例
BEGIN
DBMS_CLOUD.BULK_DOWNLOAD (
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
BULK_MOVEプロシージャ
この手順では、クラウド・オブジェクト・ストレージのバケットまたはフォルダ間でファイルを一括移動します。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
REGEXP_LIKE演算子と互換性のある正規表現パターンを使用して、削除するファイルのリストをフィルタできます。
ソースおよびターゲットのバケットまたはフォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに置くことができます。
ソースとターゲットが個別のオブジェクト・ストアにある場合、または同じクラウド・プロバイダを持つ異なるアカウントがある場合は、ソースとターゲットのロケーションに個別の資格証明名を指定できます。
ターゲット資格証明名が指定されていない場合、ソース資格証明名はデフォルトでターゲットのロケーションでも使用されます。
ファイルを移動する最初のステップは、ターゲットのロケーションにコピーし、ソース・ファイルを正常にコピーした後で削除することです。
オブジェクト・ストアでソースとターゲットのロケーション間の名前変更操作が許可されている場合、オブジェクトは移動されるのではなく名前が変更されます。
構文
DBMS_CLOUD.BULK_MOVE (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_MOVE (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);パラメータ
| パラメータ | 説明 |
|---|---|
|
|
ソース・クラウドのオブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は 正規表現の使用例:
ワイルドカードの使用例:
URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。
|
|
|
ファイルの移動が必要なターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIの書式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ターゲットのクラウドのオブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、
詳細については、「REGEXP_LIKE条件」を参照してください。 |
|
|
ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです:
|
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
例
BEGIN
DBMS_CLOUD.BULK_MOVE (
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/ノート:
ソースおよびターゲットのURIが同じオブジェクト・ストレージ・バケットまたはフォルダを指している場合、エラーが返されます。BULK_UPLOADプロシージャ
このプロシージャは、Autonomous Databaseディレクトリからクラウド・オブジェクト・ストレージにファイルをコピーします。 オーバーロードされたフォームによって、operation_idパラメータを使用できます。
構文
DBMS_CLOUD.BULK_UPLOAD (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_UPLOAD (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
Cloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
|
ファイルをアップロードするオブジェクト・ストレージのロケーションを指すURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
|
ファイルのアップロード元のAutonomous Database上のディレクトリの名前。 このパラメータは必須です。 ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名をカンマで区切ったリストを使用することもできます。 ディレクトリを指定する形式: ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用 : たとえば : 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 たとえば: 引用符を含めるには、2つの引用符を使用します。 たとえば: |
regex_filter |
ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、
詳細については、「REGEXP_LIKE条件」を参照してください。 |
|
|
ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです:
|
|
|
このパラメータを使用して、ロード操作の進捗状況と最終ステータスを、 |
例
BEGIN
DBMS_CLOUD.BULK_UPLOAD (
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
);
END;
/
DBMS_CLOUD REST APIs
この項では、Autonomous Databaseに付属するDBMS_CLOUD REST APIについて説明します。
| REST API | 説明 |
|---|---|
| このファンクションは、HTTPレスポンス・ヘッダーをJSONデータとしてAutonomous DatabaseのJSONオブジェクトに戻します。 | |
| このファンクションは、HTTPレスポンスをRAW形式のAutonomous Databaseで戻します。 これはHTTPレスポンスがバイナリ形式であることが予想される場合に便利です。 | |
| このファンクションは、HTTPレスポンス・ステータス・コードを整数としてAutonomous Databaseに戻します。 ステータス・コードは、リクエストが成功したかどうかの識別に役立ちます。 | |
このファンクションは、Autonomous DatabaseでHTTPレスポンスをTEXT形式(VARCHAR2またはCLOB)で戻します。 通常、ほとんどのクラウドREST APIは、テキスト形式でJSONレスポンスを返します。 この関数は、HTTPレスポンスがテキスト形式であると想定する場合に便利です。
|
|
|
この関数は、構成された結果キャッシュ・サイズを返します。 |
|
| このファンクションは、HTTPリクエストを開始し、レスポンスを取得して、Autonomous Databaseでレスポンスを終了します。 この関数は、引数、戻りレスポンス・コードおよびペイロードを含むCloud REST APIリクエストを送信するためのワークフローを提供します。 | |
|
この手順では、現在のセッションの最大キャッシュ・サイズを設定します。 |
DBMS_CLOUD REST APIの概要
アプリケーションでPL/SQLを使用し、Cloud REST APIを呼び出す必要がある場合、DBMS_CLOUD.SEND_REQUESTを使用してREST APIリクエストを送信できます。
DBMS_CLOUD REST API関数を使用すると、DBMS_CLOUD.SEND_REQUESTを使用してHTTPリクエストを作成し、結果を取得および保存できます。 これらの関数は、サポートされている次のクラウド・サービス:を使用して任意のREST APIをコールできる汎用APIを提供
- Oracle Cloud Infrastructure
Oracle Cloud Infrastructure REST APIの詳細は、「APIリファレンスおよびエンドポイント」を参照してください。
- Amazon Web Services (AWS)
Amazon Web Services REST APIの詳細は、「ガイドおよびAPI参照」を参照してください。
- Azure Cloud 脚注3
Azure REST APIの詳細は、「Azure REST APIリファレンス」を参照してください。
- Oracle Cloud Infrastructure Classic
Oracle Cloud Infrastructure Classic REST APIの詳細は、「すべてのRESTエンドポイント」を参照してください。
- GitHubリポジトリ
詳細については、GitHub REST APIを参照してください。
DBMS_CLOUD REST API定数
DBMS_CLOUD.SEND_REQUESTを使用してHTTPリクエストを作成するためのDBMS_CLOUD定数について説明します。
DBMS_CLOUDでは、GET、PUT、POST、HEADおよびDELETE HTTP方式がサポートされます。 HTTPリクエストに使用されるREST APIメソッドは、通常Cloud REST APIドキュメントに記載されています。
| 名前 | タイプ | 値 |
|---|---|---|
METHOD_DELETE |
VARCHAR2(6) |
'DELETE' |
METHOD_GET |
VARCHAR2(3) |
'GET' |
METHOD_HEAD |
VARCHAR2(4) |
'HEAD' |
METHOD_POST |
VARCHAR2(4) |
'POST' |
METHOD_PUT |
VARCHAR2(3) |
'PUT' |
DBMS_CLOUD REST API結果キャッシュ
DBMS_CLOUD.SEND_REQUESTでcacheパラメータをtrueに設定すると、DBMS_CLOUD REST APIの結果を保存できます。 SESSION_CLOUD_API_RESULTSビューには、REST APIの結果を保存するときに使用できる列が表示されます。
デフォルトでは、DBMS_CLOUD REST APIコールはセッションの結果を保存しません。 この場合、DBMS_CLOUD.SEND_REQUEST関数を使用して結果を返します。
DBMS_CLOUD.SEND_REQUESTを使用してcacheパラメータをTRUEに設定すると、結果が保存され、SESSION_CLOUD_API_RESULTSビューで過去の結果を表示できます。 DBMS_CLOUD REST APIリクエストの履歴結果を保存および問合せすると、アプリケーションで前の結果を使用する必要がある場合に役立ちます。
たとえば、最新のDBMS_CLOUD REST API結果を問い合せるには、ビューSESSION_CLOUD_API_RESULTSを使用します:
SELECT timestamp FROM SESSION_CLOUD_API_RESULTS;
DBMS_CLOUD.SEND_REQUESTでDBMS_CLOUD REST APIの結果を保存すると、保存されたデータは同じセッション(接続)内でのみ使用できます。 セッションが終了すると、保存されたデータは利用できなくなります。
DBMS_CLOUD.GET_API_RESULT_CACHE_SIZEおよびDBMS_CLOUD.SET_API_RESULT_CACHE_SIZEを使用して、DBMS_CLOUD REST APIキャッシュ・サイズを表示および設定し、キャッシュを無効にします。
DBMS_CLOUD REST APIの結果cache_scopeパラメータ
DBMS_CLOUD.SEND_REQUESTを使用してDBMS_CLOUD REST APIの結果を保存すると、cache_scopeの値に基づいてSESSION_CLOUD_API_RESULTSの結果へのアクセスが提供されます。
デフォルトでは、cache_scopeは'PRIVATE'で、セッションの現在のユーザーのみが結果にアクセスできます。 cache_scopeを'PUBLIC'に設定すると、すべてのセッション・ユーザーが結果にアクセスできます。 cache_scopeのデフォルト値は、各ユーザーが実行者権限で起動するプロシージャによって生成されたDBMS_CLOUD.SEND_REQUEST REST APIの結果のみを表示できることを指定します。 セッションでDBMS_CLOUD.SEND_REQUESTを起動する場合、現在のユーザーがcache_scope値に基づいてキャッシュ結果を表示できるかどうかを決定する3つの可能性があります:
-
トップレベルの文として
DBMS_CLOUD.SEND_REQUESTを直接実行し、DBMS_CLOUD.SEND_REQUESTおよびREST APIの結果は同じユーザー名で保存されます。 この場合、デフォルト値のPRIVATE'がcache_scopeに設定されているすべての結果にアクセスできます。 -
ラッパー実行者権限プロシージャを記述し、現在のユーザーとして
DBMS_CLOUD.SEND_REQUESTによるコールによってプロシージャがコールされ、REST APIの結果は同じユーザー名で保存されます。 この場合、デフォルト値のPRIVATE'がcache_scopeに設定されているすべての結果にアクセスできます。 -
ラッパー定義者権限プロシージャを記述すると、プロシージャは別のユーザーによって所有されます。 プロシージャ内で
DBMS_CLOUD.SEND_REQUESTをコールすると、プロシージャ所有者のユーザー名で結果が保存されます。この場合、異なる定義者権限ユーザーが
DBMS_CLOUD.SEND_REQUESTを起動し、REST APIの結果はその定義者プロシージャ所有者とともに保存されます。 この場合、cache_scopeがPRIVATE'の場合、デフォルトでは、実行者セッションでは結果を表示できません。定義者プロシージャ所有者が、起動したセッション・ユーザーが結果を使用できるようにする場合は、
DBMS_CLOUD.SEND_REQUESTでcache_scopeを'PUBLIC'に設定する必要があります。
DBMS_CLOUD REST API SESSION_CLOUD_API_RESULTSビュー
DBMS_CLOUD.SEND_REQUESTでcacheパラメータをtrueに設定すると、DBMS_CLOUD REST APIの結果を保存できます。 SESSION_CLOUD_API_RESULTSビューには、REST APIの結果を保存するときに使用できる列が表示されます。
ビューSESSION_CLOUD_API_RESULTSは、DBMS_CLOUD.SEND_REQUESTを使用して結果をキャッシュした場合に作成されるビューです。 ユーザー・セッションに属する履歴結果を問い合せることができます。 セッションが終了すると、SESSION_CLOUD_API_RESULTSのデータはパージされます。
| 列 | 説明 |
|---|---|
URI |
DBMS_CLOUD REST APIリクエストURL
|
TIMESTAMP |
DBMS_CLOUD REST APIレスポンス・タイムスタンプ
|
CLOUD_TYPE |
DBMS_CLOUD REST APIクラウド・タイプ(Oracle Cloud Infrastructure , AMAZON_S3,、AZURE_BLOBなど)
|
REQUEST_METHOD |
GET, PUT, HEADなどのDBMS_CLOUD REST APIリクエスト・メソッド |
REQUEST_HEADERS |
DBMS_CLOUD REST APIリクエスト・ヘッダー
|
REQUEST_BODY_TEXT |
CLOBのDBMS_CLOUD REST APIリクエスト本文 |
RESPONSE_STATUS_CODE |
DBMS_CLOUD REST APIレスポンス・ステータス・コード(200(OK)、404(Not Found)など) |
RESPONSE_HEADERS |
DBMS_CLOUD REST APIレスポンス・ヘッダー
|
RESPONSE_BODY_TEXT |
CLOBのDBMS_CLOUD REST APIレスポンス本文 |
SCOPE |
|
GET_RESPONSE_HEADERSファンクション
この関数は、HTTPレスポンス・ヘッダーをJSONオブジェクトのJSONデータとして返します。
構文
DBMS_CLOUD.GET_RESPONSE_HEADERS(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN JSON_OBJECT_T;
パラメータ
| パラメータ | 説明 |
|---|---|
resp |
|
例外
| 例外 | エラー | 説明 |
|---|---|---|
invalid_response |
ORA-20025 |
無効なレスポンス・タイプ・オブジェクトが |
GET_RESPONSE_RAWファンクション
この関数は、HTTPレスポンスをRAW形式で返します。 これはHTTPレスポンスがバイナリ形式であることが予想される場合に便利です。
構文
DBMS_CLOUD.GET_RESPONSE_RAW(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN BLOB;
パラメータ
| パラメータ | 説明 |
|---|---|
resp |
|
例外
| 例外 | エラー | 説明 |
|---|---|---|
invalid_response |
ORA-20025 |
無効なレスポンス・タイプ・オブジェクトが |
GET_RESPONSE_STATUS_CODEファンクション
この関数は、HTTPレスポンス・ステータス・コードを整数として返します。 ステータス・コードは、リクエストが成功したかどうかの識別に役立ちます。
構文
DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN PLS_INTEGER;
パラメータ
| パラメータ | 説明 |
|---|---|
resp |
|
例外
| 例外 | エラー | 説明 |
|---|---|---|
invalid_response |
ORA-20025 |
無効なレスポンス・タイプ・オブジェクトが |
GET_RESPONSE_TEXTファンクション
この関数は、TEXT形式(VARCHAR2またはCLOB)のHTTPレスポンスを返します。 通常、ほとんどのクラウドREST APIは、テキスト形式でJSONレスポンスを返します。 この関数は、HTTPレスポンスがテキスト形式であると想定する場合に便利です。
構文
DBMS_CLOUD.GET_RESPONSE_TEXT(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN CLOB;
パラメータ
| パラメータ | 説明 |
|---|---|
resp |
|
例外
| 例外 | エラー | 説明 |
|---|---|---|
invalid_response |
ORA-20025 |
無効なレスポンス・タイプ・オブジェクトが |
GET_API_RESULT_CACHE_SIZEファンクション
この関数は、構成された結果キャッシュ・サイズを返します。 キャッシュ・サイズ値は現在のセッションにのみ適用されます。
構文
DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE()
RETURN NUMBER;
SEND_REQUESTファンクションおよびプロシージャ
この関数およびプロシージャは、HTTPリクエストを開始し、レスポンスを取得し、レスポンスを終了します。 この関数は、引数を指定してクラウドREST APIリクエストを送信するためのワークフローを提供し、ファンクションはレスポンス・コードとペイロードを返します。 プロシージャを使用する場合、SESSION_CLOUD_API_RESULTSビューを使用して、保存済の結果およびレスポンスの詳細を表示できます。
構文
DBMS_CLOUD.SEND_REQUEST(
credential_name IN VARCHAR2,
uri IN VARCHAR2,
method IN VARCHAR2,
headers IN CLOB DEFAULT NULL,
async_request_url IN VARCHAR2 DEFAULT NULL,
wait_for_states IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
timeout IN NUMBER DEFAULT 0,
cache IN PL/SQL BOOLEAN DEFAULT FALSE,
cache_scope IN VARCHAR2 DEFAULT 'PRIVATE',
body IN BLOB DEFAULT NULL)
RETURN DBMS_CLOUD_TYPES.resp;
DBMS_CLOUD.SEND_REQUEST(
credential_name IN VARCHAR2,
uri IN VARCHAR2,
method IN VARCHAR2,
headers IN CLOB DEFAULT NULL,
async_request_url IN VARCHAR2 DEFAULT NULL,
wait_for_states IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
timeout IN NUMBER DEFAULT 0,
cache IN PL/SQL BOOLEAN DEFAULT FALSE,
cache_scope IN VARCHAR2 DEFAULT 'PRIVATE',
body IN BLOB DEFAULT NULL);
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
対応するクラウド・ネイティブAPIで認証するための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
uri |
リクエストを行うHTTP URI。 |
method |
HTTPリクエスト・メソッド: 詳細については、「DBMS_CLOUD REST API定数」を参照してください。 |
headers |
対応するクラウド・ネイティブAPIのHTTPリクエスト・ヘッダー(JSON形式)。 認証ヘッダーは自動的に設定され、カスタム・ヘッダーのみを渡します。 |
|
|
非同期リクエストURL。 URLを取得するには、APIのリストからリクエストAPIを選択します(https://docs.cloud.oracle.com/en-us/iaas/api/を参照)。 次に、左ペインでリクエストのAPIを探します。 たとえば、Database Services API → Autonomous Database → StopAutonomousDatabaseです。 このページには、APIホームが表示されます(ベース・エンドポイントが表示されます)。 次に、作業リクエストWorkRequestリンク用に取得した相対パスをベース・エンドポイントに追加します。 |
wait_for_states |
待機状態は次のタイプのステータスです:
|
timeout |
パラメータ デフォルト値は |
cache |
デフォルト値は |
cache_scope |
すべてのユーザーがこのリクエスト結果キャッシュにアクセスできるかどうかを指定します。 有効な値: |
body |
|
例外
| 例外 | エラー | 説明 |
|---|---|---|
invalid_req_method |
ORA-20023 |
|
invalid_req_header |
ORA-20024 |
|
使用上のノート
-
Oracle Cloud Infrastructureを使用している場合、
credential_nameの署名キー・ベースの資格証明値を使用する必要があります。 詳細については、「CREATE_CREDENTIALプロシージャ」を参照してください。 -
オプションのパラメータ
async_request_url、wait_for_statesおよびtimeoutを使用すると、長時間実行されるリクエストを処理できます。 この非同期形式のsend_requestを使用すると、ファンクションはwait_for_statesで指定された完了ステータスを待ってから戻ります。 送信リクエストでこれらのパラメータを使用して、wait_for_statesパラメータで予期される戻り状態を渡し、async_request_urlパラメータを使用して関連する作業リクエストを指定すると、リクエストはすぐには返されません。 かわりに、戻り状態が予想されるいずれかの状態になるか、timeoutを超えるまで(timeoutはオプションです)、リクエストはasync_request_urlをプローブします。timeoutが指定されていない場合、リクエストはwait_for_statesで見つかった状態が発生するまで待機します。
SET_API_RESULT_CACHE_SIZEプロシージャ
この手順では、現在のセッションの最大キャッシュ・サイズを設定します。 キャッシュ・サイズ値は現在のセッションにのみ適用されます。
構文
DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(
cache_size IN NUMBER);
パラメータ
| パラメータ | 説明 |
|---|---|
cache_size |
最大キャッシュ・サイズを指定した値 キャッシュ・サイズが デフォルトのキャッシュ・サイズは |
例外
| 例外 | エラー | 説明 |
|---|---|---|
invalid API result cache size |
ORA-20032 |
最小値は0で、最大値は10000です。 この例外は、入力値が0未満または10000より大きい場合に表示されます。 |
例
EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(101);
DBMS_CLOUD REST APIの例
DBMS_CLOUD.SEND_REQUESTを使用してOracle Cloud Infrastructureオブジェクト・ストレージ・バケットを作成および削除した例、およびテナンシのすべてのコンパートメントをリストする例を示します。
ノート:
これらの例では、Oracle Cloud InfrastructureリクエストAPIを示し、credential_name用の署名キー・ベースの資格証明を使用する必要があります。 Oracle Cloud Infrastructureの署名キー・ベースの資格証明には、private_keyおよびfingerprint引数が含まれています。
たとえば:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => âOCI_KEY_CREDâ,
user_ocid => âocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoaâ,
tenancy_ocid => âocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2aâ,
private_key => âMIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=â,
fingerprint => âf2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27â);
END;
/DBMS_CLOUD.CREATE_CREDENTIALの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
バケットの作成の例
DBMS_CLOUD.SEND_REQUESTとHTTP POSTメソッドを使用して、bucketnameという名前のオブジェクト・ストア・バケットを作成する例を示しています。
この例の詳細は、Oracle Cloud Infrastructure Object Storage Service APIのCreateBucketを参照してください。
SET SERVEROUTPUT ON
DECLARE
resp DBMS_CLOUD_TYPES.resp;
BEGIN
-- Send request
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
method => DBMS_CLOUD.METHOD_POST,
body => UTL_RAW.cast_to_raw(
JSON_OBJECT('name' value 'bucketname',
'compartmentId' value 'compartment_OCID'))
);
-- Response Body in TEXT format
dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_text(resp) || CHR(10));
-- Response Headers in JSON format
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
-- Response Status Code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_status_code(resp));
END;
/
ノート:
-
この例では、
namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。 -
WHERE:
regionはエンドポイント・リージョンです。 詳細は、「APIリファレンスおよびエンドポイント」のオブジェクト・ストレージAPIリファレンスを参照してください。 たとえば、regionは:us-phoenix-1。
バケットの削除の例
bucketnameという名前のオブジェクト・ストア・バケットを削除するために、HTTP DELETEメソッドを使用したDBMS_CLOUD.SEND_REQUESTの例を示しています。
この例の詳細は、Oracle Cloud Infrastructure Object Storage Service APIのDeleteBucketを参照してください。
SET SERVEROUTPUT ON
DECLARE
resp DBMS_CLOUD_TYPES.resp;
BEGIN
-- Send request
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname',
method => DBMS_CLOUD.METHOD_DELETE
);
-- Response Body in TEXT format
dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_text(resp) || CHR(10));
-- Response Headers in JSON format
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
-- Response Status Code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_status_code(resp));
END;
/
ノート:
-
この例では、
namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。 -
WHERE:
regionはエンドポイント・リージョンです。 詳細は、「APIリファレンスおよびエンドポイント」のオブジェクト・ストレージAPIリファレンスを参照してください。 たとえば、regionは:us-phoenix-1。
リスト・コンパートメントの例
DBMS_CLOUD.SEND_REQUESTをHTTP GETメソッドとともに使用してテナンシ(ルート・コンパートメント)のすべてのコンパートメントをリストする例を示します。 この例は、DBMS_CLOUD.SEND_REQUESTでリクエスト・ヘッダーを渡す方法を示しています。
この例の詳細は、Oracle Cloud Infrastructure Identity and Access Management Service APIの詳細は、ListCompartmentsを参照してください。
--
-- List compartments
--
DECLARE
resp DBMS_CLOUD_TYPES.resp;
root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
-- Send request
dbms_output.put_line('Send Request');
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
method => DBMS_CLOUD.METHOD_GET,
headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
);
dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
dbms_output.put_line(CHR(10));
END;
/
WHERE: regionはエンドポイント・リージョンです。 詳細は、「APIリファレンスおよびエンドポイント」のアイデンティティおよびアクセス管理(IAM) APIリファレンスを参照してください。 たとえば、regionは: uk-london-1。
非同期リクエストの例
DBMS_CLOUD.SEND_REQUESTをHTTP POSTメソッドとともに使用してAutonomous Databaseの停止操作を実行し、ステータスを待機する例を示します。 この例では、async_request_url、wait_for_statesおよびtimeoutパラメータとともにDBMS_CLOUD.SEND_REQUESTを使用する方法を示します。
--
-- Sent Work Request Autonomous Database Stop Request with Wait for Status
DECLARE
l_resp DBMS_CLOUD_TYPES.resp;
l_resp_json JSON_OBJECT_T;
l_key_shape JSON_OBJECT_T;
l_body JSON_OBJECT_T;
status_array DBMS_CLOUD_TYPES.wait_for_states_t;
BEGIN
status_array := DBMS_CLOUD_TYPES.wait_for_states_t('SUCCEEDED');
l_body := JSON_OBJECT_T('{}');
l_body.put('autonomousDatabaseId', 'ocid');
-- Send request
dbms_output.put_line(l_body.to_clob);
dbms_output.put_line('Send Request');
l_resp := DBMS_CLOUD.send_request(
credential_name => 'NATIVE_CRED_OCI',
uri => 'https://database.region.oraclecloud.com/20160918/autonomousDatabases/ocid/actions/stop',
method => DBMS_CLOUD.METHOD_POST,
body => UTL_RAW.cast_to_raw(l_body.to_clob),
async_request_url => 'https://iaas.region.oraclecloud.com/20160918/workRequests',
wait_for_states => status_array,
timeout => 600
);
dbms_output.put_line('resp body: '||DBMS_CLOUD.get_response_text(l_resp));
dbms_output.put_line('resp headers: '||DBMS_CLOUD.get_response_headers(l_resp).to_clob);
END;
/
WHERE: regionはエンドポイント・リージョンです。 詳細は、「APIリファレンスおよびエンドポイント」のアイデンティティおよびアクセス管理(IAM) APIリファレンスを参照してください。 たとえば、regionは: uk-london-1。
ocidは、Oracle Cloud Infrastructureのリソース識別子です。 詳細については、「リソース識別子」を参照してください。
脚注の凡例
脚注3: Azure Cloud REST APIコールのサポートは、ドメイン「blob.windows.net」に限定されます。