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パッケージ内の資格証明管理のサブプログラム。 - 「オブジェクトおよびファイル用のDBMS_CLOUD」
DBMS_CLOUDパッケージ内のオブジェクトおよびファイル管理用のサブプログラム。 - 「DBMS_CLOUD(バルク・ファイル管理用)」
DBMS_CLOUDパッケージ内のバルク・ファイル操作のサブプログラム。 - DBMS_CLOUD REST APIs
この項では、Autonomous Databaseで提供されるDBMS_CLOUD
REST APIについて説明します。
親トピック: DBMS_CLOUDパッケージ
アクセス管理のためのDBMS_CLOUD
資格証明の作成、削除および更新を含む、DBMS_CLOUDパッケージ内の資格証明管理のサブプログラム。
サブプログラム | 説明 |
---|---|
このプロシージャは、クラウド・サービスの資格証明をAutonomous Databaseに格納します。 | |
このプロシージャは、既存の資格証明をAutonomous Databaseから削除します。 | |
このプロシージャは、ボールト・シークレット資格証明のボールト・シークレットをすぐにリフレッシュして、Autonomous Databaseで指定した |
|
この手順では、Autonomous Databaseのクラウド・サービス資格証明属性を更新します。 |
- CREATE_CREDENTIALプロシージャ
このプロシージャは、クラウド・サービス資格証明をAutonomous Databaseに格納します。 - DROP_CREDENTIALプロシージャ
このプロシージャは、既存の資格証明をAutonomous Databaseから削除します。 - 「REFRESH_VAULT_CREDENTIALプロシージャ」
このプロシージャは、ボールト・シークレット資格証明のボールト・シークレットをリフレッシュします。 - 「UPDATE_CREDENTIALプロシージャ」
このプロシージャは、指定されたcredential_name
の新しい値で属性を更新します。
親トピック: DBMS_CLOUDサブプログラムおよびREST API
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);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
params IN CLOB DEFAULT);
パラメータ
パラメータ | 説明 |
---|---|
|
保存する資格証明の名前。 |
|
|
|
|
|
ユーザーOCIDを指定します。 ユーザーOCIDの取得の詳細は、「テナンシOCIDとユーザーOCIDの入手場所」を参照してください。 |
|
テナンシOCIDを指定します。 テナンシOCIDの取得の詳細は、「テナンシOCIDとユーザーOCIDの入手場所」を参照してください。 |
|
生成される秘密キーを指定します。 パスフレーズを使用して生成された秘密キーはサポートされていません。 パスフレーズのない秘密キーを生成する必要があります。 PEM形式でのキー・ペアの生成の詳細は、「API署名キーを生成する方法」を参照してください。 |
|
フィンガープリントを指定します。 生成された公開キーがユーザー・アカウントにアップロードされると、フィンガープリントがコンソールに表示されます。 この引数で表示されたフィンガープリントを使用します。 詳細は、「キー・フィンガープリントの取得方法」および「API署名キーを生成する方法」を参照してください。 |
|
次のいずれかの資格証明パラメータを指定します:
|
使用上のノート
-
この操作では、資格証明がデータベースに暗号化された形式で保存されます。
-
user_credentials
表を問い合せて、スキーマ内の資格証明を確認できます。 -
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
権限が必要です。
親トピック: アクセス管理用のDBMS_CLOUD
DROP_CREDENTIALプロシージャ
このプロシージャは、既存の資格証明をAutonomous Databaseから削除します。
構文
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
パラメータ
パラメータ | 説明 |
---|---|
|
削除される資格証明の名前。 |
親トピック: アクセス管理用のDBMS_CLOUD
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;
/
親トピック: アクセス管理用のDBMS_CLOUD
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
DBMS_CLOUDパッケージ内のオブジェクトおよびファイル管理用のサブプログラム。
サブプログラム | 説明 |
---|---|
このプロシージャは、クラウド・オブジェクト・ストレージから、またはディレクトリ内のファイルから、既存のSODAコレクションにデータをロードします。 | |
このプロシージャは、クラウド・オブジェクト・ストレージから、またはディレクトリ内のファイルから、既存のAutonomous Database表にデータをロードします。 | |
format パラメータtype を値orc 、parquet またはavro に設定したこのプロシージャは、クラウドのORC、ParquetまたはAvroファイルから、またはディレクトリ内のORC、ParquetまたはAvroファイルから、既存のAutonomous Database表にデータをロードします。
テキスト・ファイルと同様に、データはソースORC、ParquetまたはAvroファイルから既存の内部表にコピーされます。 |
|
このプロシージャは、クラウド・オブジェクト・ストレージ・バケット間でファイルをコピーします。 | |
このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルに外部表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 | |
CREATE_CLOUD_TABLEプロシージャ |
このプロシージャは、すべての永続データがOracle管理オブジェクト・ストレージに格納されるクラウド表を作成します。 |
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
パラメータを使用できます。 - 「COPY_DATAプロシージャ」
このプロシージャは、クラウドのファイルまたはディレクトリ内のファイルから、既存のAutonomous Database表にデータをロードします。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。 - 「COPY_DATA Avro、ORCまたはParquetファイルのプロシージャ」
format
パラメータtype
を値「avro
、orc
またはparquet
」に設定したこのプロシージャは、クラウドの「Avro、ORCまたはParquet」ファイルまたはディレクトリ内のファイルから、既存のAutonomous Database表にデータをロードします。 - 「COPY_OBJECTプロシージャ」
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットまたはフォルダから別のバケットまたはフォルダにオブジェクトをコピーします。 - 「CREATE_CLOUD_TABLEプロシージャ」
このプロシージャは、クラウド表を作成します。 すべてのクラウド表データは、Oracle管理オブジェクト・ストレージに格納されます(クラウド表では、メタデータのみがデータベースに格納されます)。 - 「CREATE_EXTERNAL_PART_TABLEプロシージャ」
このプロシージャでは、クラウド内のファイルまたはディレクトリ内のファイルから、外部パーティション表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 - 「CREATE_EXTERNAL_TABLEプロシージャ」
このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルから外部表を作成します。 これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 - 「CREATE_EXTERNAL_TABLE Apache Icebergのプロシージャ」
このプロシージャは、サポートされている構成で「Apache Iceberg」表の外部表を作成します。 - 「Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャ」
format
パラメータtype
を値「avro
、orc
またはparquet
」に設定したこのプロシージャは、クラウドまたはディレクトリ内の「Avro、ORCまたはParquet」形式のファイルを使用して外部表を作成します。 - 「CREATE_EXTERNAL_TEXT_INDEXプロシージャ」
このプロシージャは、オブジェクト・ストレージ・ファイルにテキスト索引を作成します。 - 「CREATE_HYBRID_PART_TABLEプロシージャ」
このプロシージャは、ハイブリッド・パーティション表を作成します。 これにより、クラウド内のデータベース・オブジェクトとファイル、またはディレクトリ内のデータベース・オブジェクトとファイルを使用して、Autonomous Databaseからハイブリッド・パーティション・データに対して問合せを実行できます。 - DELETE_ALL_OPERATIONSプロシージャ
このプロシージャは、スキーマ内のuser_load_operations
表に記録されたすべてのデータ・ロード操作をクリアするか、type
パラメータで示されている、指定されたタイプのすべてのデータ・ロード操作をクリアします。 - DELETE_FILEプロシージャ
このプロシージャは、Autonomous Database上の指定されたディレクトリから指定されたファイルを削除します。 - DELETE_OBJECTプロシージャ
このプロシージャは、オブジェクト・ストアの指定されたオブジェクトを削除します。 - 「DELETE_OPERATIONプロシージャ」
このプロシージャは、スキーマのuser_load_operations
またはdba_load_operations
表に記録された、指定された操作IDのデータ・ロード・エントリをクリアします。 - 「DROP_EXTERNAL_TEXT_INDEXプロシージャ」
このプロシージャは、オブジェクト・ストレージ・ファイルのテキスト索引を削除します。 - 「EXPORT_DATAプロシージャ」
このプロシージャは、問合せの結果に基づいてAutonomous Databaseからデータをエクスポートします。 このプロシージャはオーバーロードされ、クラウドまたはディレクトリへのファイルの書込みをサポートします。 - 「GET_OBJECTプロシージャおよびファンクション」
このプロシージャはオーバーロードされています。 プロシージャ・フォームは、Cloud Object Storageからオブジェクトを読み取り、それをAutonomous Databaseにコピーします。 関数フォームは、Cloud Object Storageからオブジェクトを読み取り、BLOB
をAutonomous Databaseに返します。 - LIST_FILESファンクション
このファンクションは、指定されたディレクトリ内のファイルを一覧表示します。 結果には、ファイル名と、ファイル・サイズ(バイト単位)、作成タイムスタンプ、最終変更タイムスタンプなどのファイルに関する追加メタデータが含まれます。 - LIST_OBJECTSファンクション
このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。 結果には、オブジェクト名、およびオブジェクトに関する追加メタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 - 「MOVE_OBJECTプロシージャ」
このプロシージャでは、オブジェクトをクラウド・オブジェクト・ストレージのバケットまたはフォルダ間で移動します。 - 「PUT_OBJECTプロシージャ」
このプロシージャはオーバーロードされています。 一方の形式では、Autonomous DatabaseからCloud Object Storageにファイルがコピーされます。 別の形式では、Autonomous DatabaseからCloud Object StorageにBLOB
がコピーされます。 - 「SYNC_EXTERNAL_PART_TABLEプロシージャ」
このプロシージャは、クラウドのファイルの外部パーティション表の更新を簡素化します。 この手順は、新しいパーティションが追加されるか、外部パーティション表のオブジェクト・ストア・ソースからパーティションが削除されるたびに実行します。 - 「VALIDATE_EXTERNAL_PART_TABLEプロシージャ」
このプロシージャは、外部パーティション表のソース・ファイルを検証し、ログ情報を生成し、外部表に指定された書式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。 - 「VALIDATE_EXTERNAL_TABLEプロシージャ」
このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成し、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseの「不正なファイル」表に格納します。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。 - 「VALIDATE_HYBRID_PART_TABLEプロシージャ」
このプロシージャは、ハイブリッド・パーティション表のソース・ファイルを検証し、ログ情報を生成し、ハイブリッド表に指定された書式オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。
親トピック: DBMS_CLOUDサブプログラムおよびREST API
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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の書式」を参照してください。
事前認証済リクエスト(PAR) URL 事前認証済リクエスト(PAR) 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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
「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
に設定されます。 これにより、拒否されたレコードが生成されることはありません。
-
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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の書式」を参照してください。
事前認証済リクエスト(PAR) URL 事前認証済リクエスト(PAR) URLを使用して、次の方法で外部表を作成できます:
ディレクトリ
ノート: 事前認証済リクエスト(PAR) 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リポジトリ
-
Oracle Cloud Infrastructure Object Storage (事前認証済リクエスト(PAR) URL)
資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストア上にある必要があります。
詳細については、「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
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
CREATE_EXTERNAL_TABLE Apache Icebergのプロシージャ
このプロシージャは、サポートされている構成で「Apache Iceberg」表の外部表を作成します。
サポートされる構成の詳細は、「Apache 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の書式」を参照してください。 |
例A WSAWS Glueカタログを使用したIceberg表
AWS接着カタログを使用して「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
パス。
例A WSメタデータ・ファイルURIを使用するIceberg表
format
パラメータは、次のとおりです:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
例O CIHadoopCatalogカタログを使用する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
パス。
例O CIメタデータ・ファイルのURIを使用するIceberg表
format
パラメータは、次のとおりです:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
パラメータには、次のように1つの要素を持つJSONオブジェクトが含まれます:
protocol_type
:'iceberg'
である必要があります
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
「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への列名のマッピング」を参照してください。
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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の形式は、Cloud Object Storageサービスによって異なります。 詳細については、「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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
DELETE_ALL_OPERATIONSプロシージャ
このプロシージャは、スキーマ内のuser_load_operations
表に記録されているすべてのデータ・ロード操作をクリアするか、指定されたタイプのすべてのデータ・ロード操作をクリアします。これは、type
パラメータで示されます。
構文
DBMS_CLOUD.DELETE_ALL_OPERATIONS
(
type IN VARCHAR DEFAULT NULL);
パラメータ
パラメータ | 説明 |
---|---|
|
削除する操作のタイプを指定します。 タイプ値は、 |
使用上のノート
-
DBMS_CLOUD.DELETE_ALL_OPERATIONS
では、現在実行中の操作(実行中ステータスの操作)は削除されません。
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
DELETE_OPERATIONプロシージャ
このプロシージャは、スキーマのuser_load_operations
またはdba_load_operations
表に記録された、指定された操作IDのデータ・ロード・エントリをクリアします。
構文
DBMS_CLOUD.DELETE_OPERATION
(
id IN NUMBER);
パラメータ
パラメータ | 説明 |
---|---|
|
削除するログ・ファイル・エントリに関連付けられた操作IDを指定します。 |
例
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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_aaaaaa
curl -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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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事前認証済リクエスト(PAR) 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
がバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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
を戻します。
例
これは、各ファイルの行を返すパイプライン関数です。 たとえば、次の問合せを使用してこの関数を使用します。
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_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の書式」に表示されている、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。 |
使用上のノート
-
オブジェクト・ストアの機能によっては、
DBMS_CLOUD.LIST_OBJECTS
は特定の属性の値を返しません。この場合、フィールドの戻り値はNULL
です。サポートされているすべてのオブジェクトは、
OBJECT_NAME
、BYTES
およびCHECKSUM
のフィールドの戻り値を格納します。次の表では、
CREATED
およびLAST_MODIFIED
by Object Storeフィールドのサポートを示します:オブジェクト・ストア CREATED
LAST_MODIFIED
Oracle 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
がバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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;
/
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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の書式」を参照してください。
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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 |
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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で、ソース・ファイル内のすべての行がスキャンされます。 |
|
内部使用のみに対応しています。 このパラメータは使用しないでください。 |
|
行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は |
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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
が適用されるまで、すべての外部パーティションからデータが読み取られる可能性があります。 どちらのパーティションまたはパーティションの一部をどの順序で読み取るかを制御できません。
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
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
DBMS_CLOUDパッケージ内のバルク・ファイル操作のサブプログラム。
サブプログラム | 説明 |
---|---|
BULK_COPYプロシージャ |
このプロシージャは、クラウド・オブジェクト・ストレージ・バケット間でファイルをコピーします。 |
BULK_DELETEプロシージャ |
このプロシージャは、クラウド・オブジェクト・ストレージのバケットまたはフォルダからファイルを削除します。 |
BULK_DOWNLOADプロシージャ |
このプロシージャは、クラウド・オブジェクト・ストア・バケットからAutonomous Databaseのディレクトリにファイルをダウンロードします。 |
BULK_MOVEプロシージャ |
この手順では、クラウド・オブジェクト・ストレージ・バケット間でファイルを移動します。 |
BULK_UPLOADプロシージャ |
このプロシージャは、Autonomous Databaseのディレクトリからクラウド・オブジェクト・ストレージにファイルをアップロードします。 |
- 「BULK_COPYプロシージャ」
このプロシージャでは、クラウド・オブジェクト・ストレージ・バケット間でファイルをバルク・コピーします。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。 - 「BULK_DELETEプロシージャ」
このプロシージャでは、クラウド・オブジェクト・ストレージからファイルを一括削除します。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。REGEXP_LIKE
演算子と互換性のある正規表現パターンを使用して、削除するファイルのリストをフィルタできます。 - 「BULK_DOWNLOADプロシージャ」
このプロシージャは、クラウド・オブジェクト・ストレージからAutonomous Databaseディレクトリにファイルをダウンロードします。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。REGEXP_LIKE
演算子と互換性のある正規表現パターンを使用して、ダウンロードするファイルのリストをフィルタできます。 - 「BULK_MOVEプロシージャ」
このプロシージャでは、クラウド・オブジェクト・ストレージのバケットまたはフォルダ間でファイルを一括移動します。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。 - 「BULK_UPLOADプロシージャ」
このプロシージャは、Autonomous Databaseディレクトリからクラウド・オブジェクト・ストレージにファイルをコピーします。 オーバーロードされたフォームによって、operation_id
パラメータを使用できます。
親トピック: DBMS_CLOUDサブプログラムおよびREST API
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の形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD 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;
/
親トピック: DBMS_CLOUD(バルク・ファイル管理用)
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の形式は、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;
/
親トピック: DBMS_CLOUD(バルク・ファイル管理用)
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の形式は、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;
/
親トピック: DBMS_CLOUD(バルク・ファイル管理用)
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の形式は、Cloud Object Storageサービスによって異なります。 詳細については、「DBMS_CLOUD URIの書式」を参照してください。 |
|
ファイルの移動が必要なターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIの形式は、Cloud Object Storageサービスによって異なります。 詳細については、「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が同じオブジェクト・ストレージ・バケットまたはフォルダを指している場合、エラーが返されます。親トピック: DBMS_CLOUD(バルク・ファイル管理用)
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上のディレクトリの名前。 このパラメータは必須です。 |
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(バルク・ファイル管理用)
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を使用していて、クラウドのREST APIをコールする必要がある場合は、DBMS_CLOUD.SEND_REQUEST
を使用してREST APIリクエストを送信できます。 - 「DBMS_CLOUD REST API定数」
DBMS_CLOUD.SEND_REQUEST
を使用してHTTP
リクエストを行うためのDBMS_CLOUD
定数について説明します。 - 「DBMS_CLOUD REST API結果キャッシュ」
DBMS_CLOUD.SEND_REQUEST
でcache
パラメータをtrueに設定すると、DBMS_CLOUD
REST APIの結果を保存できます。SESSION_CLOUD_API_RESULTS
ビューには、REST APIの結果を保存するときに使用できる列が表示されます。 - 「GET_RESPONSE_HEADERSファンクション」
この関数は、HTTPレスポンス・ヘッダーをJSONオブジェクトのJSONデータとして返します。 - 「GET_RESPONSE_RAWファンクション」
この関数は、HTTPレスポンスをRAW形式で返します。 これはHTTPレスポンスがバイナリ形式であることが予想される場合に便利です。 - 「GET_RESPONSE_STATUS_CODEファンクション」
この関数は、HTTPレスポンス・ステータス・コードを整数として返します。 ステータス・コードは、リクエストが成功したかどうかの識別に役立ちます。 - 「GET_RESPONSE_TEXTファンクション」
この関数は、TEXT
形式(VARCHAR2
またはCLOB
)のHTTPレスポンスを返します。 通常、ほとんどのクラウドREST APIは、テキスト形式でJSONレスポンスを返します。 この関数は、HTTPレスポンスがテキスト形式であると想定する場合に便利です。 - 「GET_API_RESULT_CACHE_SIZEファンクション」
このファンクションは、構成された結果キャッシュ・サイズを返します。 キャッシュ・サイズ値は現在のセッションにのみ適用されます。 - 「SEND_REQUESTファンクションおよびプロシージャ」
この関数およびプロシージャは、HTTPリクエストを開始し、レスポンスを取得し、レスポンスを終了します。 この関数は、引数を指定してクラウドREST APIリクエストを送信するためのワークフローを提供し、ファンクションはレスポンス・コードとペイロードを返します。 プロシージャを使用する場合、SESSION_CLOUD_API_RESULTS
ビューを使用して、保存済の結果およびレスポンスの詳細を表示できます。 - 「SET_API_RESULT_CACHE_SIZEプロシージャ」
このプロシージャでは、現在のセッションの最大キャッシュ・サイズを設定します。 キャッシュ・サイズ値は現在のセッションにのみ適用されます。 - 「DBMS_CLOUD REST APIの例」
DBMS_CLOUD.SEND_REQUEST
を使用してOracle Cloud Infrastructureオブジェクト・ストレージ・バケットを作成および削除する例と、テナンシ内のすべてのコンパートメントをリストする例を示しています。
親トピック: DBMS_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 APIs
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 APIs
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
REST APIの結果をDBMS_CLOUD.SEND_REQUEST
で保存すると、cache_scope
の値に基づいてSESSION_CLOUD_API_RESULTS
の結果へのアクセスが提供されます。 - 「DBMS_CLOUD REST API SESSION_CLOUD_API_RESULTSビュー」
DBMS_CLOUD.SEND_REQUEST
でcache
パラメータをtrueに設定すると、DBMS_CLOUD
REST APIの結果を保存できます。SESSION_CLOUD_API_RESULTS
ビューには、REST APIの結果を保存するときに使用できる列が表示されます。
親トピック: DBMS_CLOUD REST APIs
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結果キャッシュ
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 |
|
親トピック: DBMS_CLOUD REST API結果キャッシュ
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 |
無効なレスポンス・タイプ・オブジェクトが |
親トピック: DBMS_CLOUD REST APIs
GET_RESPONSE_RAWファンクション
この関数は、HTTPレスポンスをRAW形式で返します。 これはHTTPレスポンスがバイナリ形式であることが予想される場合に便利です。
構文
DBMS_CLOUD.GET_RESPONSE_RAW
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN BLOB;
パラメータ
パラメータ | 説明 |
---|---|
resp |
|
例外
例外 | エラー | 説明 |
---|---|---|
invalid_response |
ORA-20025 |
無効なレスポンス・タイプ・オブジェクトが |
親トピック: DBMS_CLOUD REST APIs
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 |
無効なレスポンス・タイプ・オブジェクトが |
親トピック: DBMS_CLOUD REST APIs
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 |
無効なレスポンス・タイプ・オブジェクトが |
親トピック: DBMS_CLOUD REST APIs
GET_API_RESULT_CACHE_SIZEファンクション
この関数は、構成された結果キャッシュ・サイズを返します。 キャッシュ・サイズ値は現在のセッションにのみ適用されます。
構文
DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE
()
RETURN NUMBER;
親トピック: DBMS_CLOUD REST APIs
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
で見つかった状態が発生するまで待機します。
親トピック: DBMS_CLOUD REST APIs
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 APIs
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のリソース識別子です。 詳細については、「リソース識別子」を参照してください。
親トピック: DBMS_CLOUD REST APIs
脚注の凡例
脚注3: Azure Cloud REST APIコールのサポートは、ドメイン「blob.windows.net」に限定されます。