DBMS_CLOUDサブプログラムおよびREST API
この項では、Autonomous Databaseで提供されるDBMS_CLOUD
サブプログラムおよびREST APIについて説明します。
DBMS_CLOUD
サブプログラムをADMIN以外のユーザーで実行するには、そのユーザーにEXECUTE
権限を付与する必要があります。たとえば、adb_user
に権限を付与するには、ADMINとして次のコマンドを実行します: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 API
この項では、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に格納します。
データのロードやクラウド内の外部データの問合せを行う場合、または他のケースでDBMS_CLOUD
プロシージャをcredential_name
パラメータとともに使用する場合、格納されたクラウド・サービス資格証明を使用してクラウド・サービスにアクセスします。このプロシージャはオーバーロードされています:
-
Oracle Cloud Infrastructure関連のパラメータ(
user_ocid
、tenancy_ocid
、private_key
およびfingerprint
)は、Oracle Cloud Infrastructure署名キー認証を使用している場合にのみ使用します。 -
次のいずれかに対して、
params
パラメータを使用します。-
Amazonリソース名(ARN)資格証明
-
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
表を問い合せることにより、すべての資格証明を表示できます。 -
クラウド・サービス資格証明が変更されないかぎり、資格証明を作成する必要があるのは1回のみです。資格証明を一度格納したら、
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 Consoleにあります。
たとえば:
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 StorageまたはAzure Data Lake Storageに存在する場合、またはAzure APIをコールする場合、username
はAzureストレージ・アカウント名で、password
はAzureストレージ・アカウント・アクセス・キーです。Azureストレージ・アカウントについてを参照してください。
Amazon S3互換の資格証明
サービス | 資格証明情報 |
---|---|
Oracle Cloud Infrastructure (顧客秘密キー) |
ソース・ファイルがOracle Cloud Infrastructureに存在する場合は、顧客秘密キーをS3互換URLとともに使用する必要があります。詳細は、顧客秘密キーの作業を参照してください。 |
Google Cloud Storage |
ソース・ファイルがGoogle Cloud Storageに存在する場合、またはGoogle Cloud Storage APIをコールしている場合は、デフォルトのGoogleプロジェクトを設定し、HMACキーを取得して、Google Cloud Storage S3互換URLを提供する資格証明を作成する必要があります。ユーザー名としてHMACキーIDを使用し、パスワードとしてHMACシークレットを使用します。 |
Wasabi Hot Cloud Storage |
ソース・ファイルがWasabi Hot Cloud Storageに存在する場合、またはWasabi Hot Cloud Storage APIをコールしている場合は、S3互換URLを提供する資格証明を作成するためにアクセス・キーが必要です。ユーザー名としてWasabi Hot Cloud Storageアクセス・キーを使用し、パスワードとしてWasabi Hot Cloud Storage秘密キーを使用します。 詳細は、Wasabi APIアクセス・キー・セットの作成を参照してください。 |
AWS Amazon Resource Name (ARN)の資格証明
ソース・ファイルがAmazon S3にある場合、またはAWS APIをコールしている場合、params
を使用してAmazonリソース名(ARN)のパラメータを指定します。
パラメータ | 値 |
---|---|
aws_role_arn |
AWSロールを識別するAmazonリソース名(ARN)を指定します。 資格証明の作成時にこのパラメータを指定しなかった場合は、 |
external_id_type |
オプションで、 資格証明の作成時にこのパラメータを指定しない場合、デフォルト値は |
次に例を示します。
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 |
Google AnalyticsまたはGoogle BigQueryのOAuth 2.0アクセスを、次のパラメータとその値を含むJSONオブジェクトとともに指定します。
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、パスワードがpasswordの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
を問い合せると、すべての資格証明を表示できます。 -
クラウド・サービス資格証明が変更されないかぎり、資格証明を作成する必要があるのは1回のみです。資格証明を一度格納したら、
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管理のObject Storageに格納されるクラウド表を作成します。 |
Apache IcebergのCREATE_EXTERNAL_TABLEプロシージャ |
このプロシージャは、サポートされている構成で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アクセス・ドライバを使用してダンプ・ファイルにデータを書き込みます。 |
|
このプロシージャはオーバーロードされています。このプロシージャ・フォームは、クラウド・オブジェクト・ストレージからオブジェクトを読み取り、それをAutonomous Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous DatabaseにBLOB を返します。
|
|
このファンクションは、指定されたディレクトリ内のファイルを一覧表示します。結果には、ファイル名と、ファイルに関する追加のメタデータ(ファイル・サイズ(バイト)、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 | |
このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。結果には、オブジェクト名と、オブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 | |
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のバケットにオブジェクトを移動します。 | |
このプロシージャはオーバーロードされています。このプロシージャは、1つの形式でAutonomous DatabaseからCloud Object Storageにファイルをコピーします。また、このプロシージャは、Autonomous Databaseからクラウド・オブジェクト・ストレージにBLOB をコピーします。
|
|
このプロシージャは、クラウドのファイルの外部パーティション表の更新を簡素化します。このプロシージャは、新しいパーティションが追加されたとき、またはパーティションが外部パーティション表のオブジェクト・ストア・ソースから削除されたときに実行します。 |
|
このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 | |
このプロシージャは、外部パーティション表のソース・ファイルを検証し、ログ情報を生成し、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 | |
このプロシージャは、ハイブリッド・パーティション表のソース・ファイルを検証し、ログ情報を生成し、ハイブリッド表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 |
- COPY_COLLECTIONプロシージャ
このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリからSODAコレクションにデータをロードします。指定したSODAコレクションが存在しない場合は、プロシージャによって作成されます。オーバーロード・フォームでは、operation_id
パラメータを使用できます。 - COPY_DATAプロシージャ
このプロシージャは、クラウドのファイルまたはディレクトリ内のファイルからAutonomous Databaseの既存の表にデータをロードします。オーバーロード・フォームでは、operation_id
パラメータを使用できます。 - Avro、ORCまたはParquetファイルのCOPY_DATAプロシージャ
このプロシージャは、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から外部データに対する問合せを実行できます。 - Apache IcebergのCREATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、サポートされている構成で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プロシージャおよびファンクション
このプロシージャはオーバーロードされます。このプロシージャ・フォームは、クラウド・オブジェクト・ストレージからオブジェクトを読み取り、それをAutonomous Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous DatabaseにBLOB
を返します。 - LIST_FILESファンクション
このファンクションは、指定されたディレクトリ内のファイルを一覧表示します。結果には、ファイル名と、ファイルに関する追加のメタデータ(ファイル・サイズ(バイト)、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 - LIST_OBJECTSファンクション
このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。結果には、オブジェクト名と、オブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 - MOVE_OBJECTプロシージャ
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットまたはフォルダから別のクラウド・オブジェクト・ストレージ・バケットにオブジェクトを移動します。 - PUT_OBJECTプロシージャ
このプロシージャはオーバーロードされます。このプロシージャは、1つの形式でAutonomous DatabaseからCloud Object Storageにファイルをコピーします。また、このプロシージャは、Autonomous Databaseからクラウド・オブジェクト・ストレージにBLOB
をコピーします。 - SYNC_EXTERNAL_PART_TABLEプロシージャ
このプロシージャは、クラウドのファイルからの外部パーティション表の更新を簡略化します。このプロシージャは、新しいパーティションが追加されたとき、またはパーティションが外部パーティション表のオブジェクト・ストア・ソースから削除されたときに実行します。 - VALIDATE_EXTERNAL_PART_TABLEプロシージャ
このプロシージャは、外部パーティション表のソース・ファイルの検証、ログ情報の生成、および外部表に指定されたフォーマット・オプションと一致しない行のAutonomous Databaseのbadfile表に格納します。オーバーロード・フォームでは、operation_id
パラメータを使用できます。 - VALIDATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。オーバーロード・フォームでは、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コレクションの名前。この名前のコレクションがすでに存在する場合は、指定したデータがロードされ、そうでない場合は新しいコレクションが作成されます。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は: ディレクトリ内のファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名のみを指定できます。文字"*"は複数文字のワイルドカードとして使用でき、文字"?"は1文字のワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
ソース・ファイルのフォーマットを説明するオプション。これらのオプションはJSON文字列として指定されます。 サポートされているフォーマットは、 前述したJSONデータのフォーマットとは別に、Autonomous Databaseでは他のフォーマットもサポートされています。Autonomous Databaseでサポートされているformat引数のリストは、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);
パラメータ
パラメータ | 説明 |
---|---|
|
データベースのターゲット表の名前。ターゲット表は |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 クラウド・ソース・ファイルURI このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は: ディレクトリ内のファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名のみを指定できます。文字"*"は複数文字のワイルドカードとして使用でき、文字"?"は1文字のワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドとそのデータ型がターゲット表の定義によって決定されることを意味します。この引数の構文は、通常のOracle外部表の
|
|
ソース・ファイル、ログ・ファイルおよび悪いファイルの形式を示すオプション。オプションのリストと値の指定方法は、DBMS_CLOUD Package Format Optionsを参照してください。 Avro、ORCまたはParquetファイル形式オプションについては、DBMS_CLOUD Avro、ORCまたはParquet用のパッケージ形式オプションを参照してください。 |
|
このパラメータを使用して、 |
使用上のノート
デフォルトのレコード・デリミタは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
COPY_DATA Avro、ORCまたはParquetファイル用のプロシージャ
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);
パラメータ
パラメータ | 説明 |
---|---|
|
データベースのターゲット表の名前。ターゲット表は |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。
ディレクトリ 1つのディレクトリと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ファイルでは、2つのオプションのみがサポートされています。DBMS_CLOUD Avro、ORCまたはParquet用のパッケージ形式オプションを参照してください。 |
使用上のノート
-
他のデータ・ファイルと同様に、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
);
パラメータ
パラメータ | 説明 |
---|---|
|
ソースのCloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
ターゲット・オブジェクト・ストアのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、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);
パラメータ
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
個々のパーティションの場所情報を含む、完全なパーティション化句を指定します。
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 次に例を示します。
パラメータ URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。
|
|
外部表の列名およびデータ型のカンマ区切りリスト。このパラメータには、
|
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを意味します。この引数の構文は、通常のOracle外部表の |
|
フォーマット・オプション
データ・ファイルが構造化されておらず、 ハイブ形式に基づいていないオブジェクト名の場合、 ソース・ファイルのフォーマットを説明するすべての |
使用上のノート
-
partitioning_clause
パラメータとfile_uri_list
パラメータの両方を使用してこのプロシージャをコールすることはできません。 -
Avro、ParquetまたはORCデータ・ファイルを含む構造化データ・ファイルでは、
column_list
パラメータの指定はオプションです。column_list
を指定しない場合、format
パラメータのpartition_columns
オプションには、name
とtype
の両方を含める必要があります。 -
CSVテキスト・ファイルなどの構造化されていないデータ・ファイルでは、
column_list
パラメータは必須です。 -
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
は、次のようなサポートされているクラウド・オブジェクト・ストレージ・サービスの外部パーティション・ファイルをサポートします:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob StorageまたはAzure Data Lake Storage
-
Amazon S3
-
Amazon S3互換: 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);
パラメータ
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば:
URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。
1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は: ディレクトリ内のファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名のみを指定できます。文字"*"は複数文字のワイルドカードとして使用でき、文字"?"は1文字のワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
外部表の列名およびデータ型のカンマ区切りリスト。 |
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型が |
|
ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、DBMS_CLOUD Package Format Optionsを参照してください。 Avro、ORCまたはParquetフォーマット・ファイルについては、Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャを参照してください。 |
使用上のノート
-
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
は、サポートされているクラウド・オブジェクト・ストレージ・サービスで、次のような外部パーティション・ファイルをサポートします:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob StorageまたはAzure Data Lake Storage
-
Amazon S3
-
Amazon S3互換: Oracle Cloud Infrastructure Object Storage、Google Cloud Storage、Wasabi Hot Cloud Storageなど。
-
GitHubリポジトリ
資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストアに存在する必要があります。
詳細は、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
Apache IcebergのCREATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、サポートされている構成で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 Resource Name (ARN)の資格証明はサポートされていません。 |
|
Icebergカタログが指定されている場合、NULLである必要があります(次のformat パラメータを参照)。アイスバーグ・カタログを使用しない場合は、file_uri_list にアイスバーグ・メタデータ・ファイルへのURIが含まれている必要があります。
|
|
列名および型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 列名は、基礎となるデータ・ファイル(Parquet、Avro、ORC)にある名前と一致します。Oracleデータ型は、Icebergデータ型とParquetデータ型、Avroデータ型およびORCデータ型の間のParquet/Avro/ORCマッピングを使用して導出されます。したがって、ユーザーは |
|
列名およびデータ型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 |
|
例および詳細は、次の例、OCIデータ・フロー・サンプルのIcebergサポート、DBMS_CLOUD URI形式を参照してください。 |
AWS Glue Catalogを使用したAWS Icebergテーブルの例
AWS Glue Catalogを使用してAWS Iceberg表に表を作成する場合のformat
パラメータは、次のとおりです。
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
パラメータには、次の2つの要素を持つJSONオブジェクトが含まれます。
protocol_type
: 'iceberg'である必要がありますprotocol_config
: アイスバーグ・カタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type
:'aws_glue'
である必要がありますiceberg_glue_region
: カタログ・リージョン('us-west-1'
など)iceberg_table_path
:glue database.glue table name
パス。
メタデータ・ファイルURIを使用したAWS Iceberg表の例
format
パラメータは次のとおりです。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
HadoopCatalogカタログを使用したOCI Iceberg表の例
format
パラメータは、次のとおりです。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
パラメータには、次の2つの要素を持つJSONオブジェクトが含まれます。
protocol_type
:'iceberg'
である必要がありますprotocol_config
: アイスバーグ・カタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type
:'hadoop'
である必要がありますiceberg_warehouse
: 表の生成時に使用されるウェアハウス・ディレクトリ・パス(ネイティブURI形式)。iceberg_table_path
: 表の作成時に使用されるdatabase_name.table name
パス。
メタデータ・ファイルのURIを使用したOCI Iceberg表の例
format
パラメータは次のとおりです。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
パラメータには、次のように1つの要素を持つJSONオブジェクトが含まれます。
protocol_type
:'iceberg'
である必要があります
親トピック: オブジェクトおよびファイル用のDBMS_CLOUD
CREATE_EXTERNAL_TABLE Avro、ORCまたはParquetファイル用のプロシージャ
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);
パラメータ
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば:
URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は: ディレクトリ内のファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名のみを指定できます。文字"*"は複数文字のワイルドカードとして使用でき、文字"?"は1文字のワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
(オプション)このフィールドは、指定されると、スキーマ、列およびデータ型の自動導出を指定する Avro、ORCまたはParquetソースに対して Parquetファイルの詳細は、DBMS_CLOUDパッケージのParquetとOracleデータ型のマッピングを参照してください。 ORCファイルの場合、詳細は、DBMS_CLOUD Package ORC to Oracle Data Type Mappingを参照してください。 Avroファイルの詳細は、DBMS_CLOUD Package Avro to Oracle Data Type Mappingを参照してください。 |
|
Avro、ORCまたはParquetファイルでは無視されます。 ソースのフィールドは、名前によって外部表の列を照合します。ソースのデータ型は、外部表の列データ型に変換されます。 ORCファイルについては、DBMS_CLOUDパッケージのORCとOracleデータ型のマッピングを参照してください Parquetファイルの詳細は、DBMS_CLOUDパッケージのParquetとOracleデータ型のマッピングを参照してください。 Avroファイルの詳細は、DBMS_CLOUD Package Avro to Oracle Data Type Mappingを参照してください。 |
|
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
);
パラメータ
パラメータ | 説明 |
---|---|
|
Cloud Object Storageの場所にアクセスするための資格証明の名前。パブリック、事前認証済または事前署名済バケットURIの場合、NULLを指定できます。 詳細は、リソースにアクセスするためのポリシーとロールの構成を参照してください。
|
location_uri |
オブジェクト・ストア・バケットまたはフォルダURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
index_name |
location_uri の場所にあるファイル上に構築する索引の名前を指定します。
このパラメータは必須です。 |
|
追加の構成オプションを指定します。オプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです。
次の方法でストップワードを指定できます。
|
例
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/
親トピック: オブジェクトおよびファイル用の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);
パラメータ
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
個々のパーティションの場所情報を含む、完全なパーティション化句を指定します。 ディレクトリを使用するには、パーティション化句で クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば:
|
|
外部表の列名およびデータ型のカンマ区切りリスト。 |
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを意味します。この引数の構文は、通常のOracle外部表の |
|
ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、DBMS_CLOUD Package Format Optionsを参照してください。 |
使用上のノート
-
プロシージャ
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
は、サポートされているクラウド・オブジェクト・ストレージ・サービスで、次のような外部パーティション・ファイルをサポートします:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob StorageまたはAzure Data Lake Storage
-
Amazon S3
-
Amazon S3互換: 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 |
ファイルが存在しない場合、エラーを無視して報告しません。有効な値は |
DBMS_CLOUD.DELETE_FILE
をADMIN以外のユーザーで実行するには、ファイルを含むディレクトリに対する書込み権限をそのユーザーに付与する必要があります。たとえば、adb_user
に書込み権限を付与するには、ADMINとして次のコマンドを実行します: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);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
object_uri |
削除するオブジェクトのオブジェクトまたはファイルURI。URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、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);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 資格証明パラメータが含まれていない場合、ディレクトリへの出力を指定します。 |
|
formatパラメータの値、および資格証明パラメータを含めるかどうかに応じて、様々なフォームがあります:
URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
エクスポート・フォーマット・オプションを提供するJSON文字列。 サポートされるオプションは次のとおりです。
|
|
このパラメータを使用して、必要なデータのみがエクスポートされるように SELECT warehouse_id, quantity FROM inventories
たとえば、次のとおりです。 SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
このパラメータを使用して、 |
使用上のノート:
-
指定する
query
パラメータ値は、必要に応じて、結合や副問合せを含む問合せなどの拡張問合せにすることができます。 -
指定されたformatパラメータに応じて、
DBMS_CLOUD.EXPORT_DATA
は、指定された問合せの結果をクラウド・オブジェクト・ストアまたは次のいずれかの形式でディレクトリの場所に出力します:-
CSV、JSON、ParquetまたはXMLファイル。
CSV、JSON、ParquetまたはXML出力ファイルでの
DBMS_CLOUD.EXPORT_DATA
の使用の詳細は、「オブジェクト・ストアへのテキストとしてのデータのエクスポート」および「ディレクトリへのデータのエクスポート」を参照してください。 -
ORACLE_DATAPUMPアクセス・ドライバを使用したダンプ・ファイルへのデータの書込み。
-
-
CSV、JSONまたはXML出力の場合、生成されたファイルに10MBのデータが含まれると、デフォルトで新しい出力ファイルが作成されます。ただし、結果データが10MB未満の場合でも、データベース・サービスおよびAutonomous DatabaseインスタンスのECPU (OCPUを使用している場合)の数によっては、複数の出力ファイルが作成される可能性があります。
詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。
CSV、JSONまたはXMLのデフォルトの出力ファイルのチャンク・サイズは10MBです。この値は、
format
パラメータのmaxfilesize
オプションを使用して変更できます。詳細は、DBMS_CLOUD EXPORT_DATAのパッケージ形式オプションを参照してください。 -
Parquet出力の場合、生成される各ファイルは128MB未満で、複数の出力ファイルが生成される可能性があります。ただし、結果データが128MB未満の場合でも、データベース・サービスおよびAutonomous DatabaseインスタンスのECPU (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
サービスを使用すると、複数のファイル名を指定した場合でも、単一のダンプ・ファイルが並列度なしでエクスポートされます。4 OCPUのAutonomous Databaseインスタンスをmedium
またはhigh
サービスで使用する場合、複数のファイル名を指定すると、ジョブをパラレルに実行でき、複数のダンプ・ファイルがエクスポートされます。 -
DBMS_CLOUD.EXPORT_DATA
を使用して作成したダンプ・ファイルは、Oracle Data Pumpimpdp
を使用してインポートすることはできません。データベースに応じて、次のようにこれらのファイルを使用できます:-
Autonomous Databaseでは、値
datapump
を持つformat
パラメータtype
をサポートする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
サンプル
次の例は、formatの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
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
次の例は、formatの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;
/
次の例は、formatのtype
パラメータに値xml
が指定された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;
/
次の例は、formatのtype
パラメータに値csv
が指定された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プロシージャおよびファンクション
このプロシージャはオーバーロードされています。このプロシージャ・フォームは、クラウド・オブジェクト・ストレージからオブジェクトを読み取り、それをAutonomous Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous DatabaseにBLOB
を返します。
構文
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;
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
オブジェクトまたはファイルURI。URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
データベース上のディレクトリの名前。 足1 |
|
作成するファイルの名前を指定します。ファイル名を指定しない場合、ファイル名は |
startoffset |
プロシージャが読取りを開始するオフセット(バイト)。 |
endoffset |
プロシージャが読取りを停止するオフセット(バイト)。 |
|
オブジェクトの格納に使用する圧縮を指定します。 |
脚注1
DBMS_CLOUD.GET_OBJECT
をADMIN以外のユーザーで実行するには、そのユーザーにディレクトリに対する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以外のユーザーで実行するには、ディレクトリに対する読取り権限をそのユーザーに付与する必要があります。たとえば、adb_user
に読取り権限を付与するには、ADMINとして次のコマンドを実行します: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;
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
location_uri |
オブジェクトまたはファイルURI。URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
使用上のノート
-
オブジェクト・ストアの機能によって、
DBMS_CLOUD.LIST_OBJECTS
は特定の属性の値を返さず、その場合、フィールドの戻り値はNULL
です。サポートされているすべてのオブジェクト・ストアは、
OBJECT_NAME
、BYTES
およびCHECKSUM
フィールドの値を返します。次の表に、オブジェクト・ストアによるフィールド
CREATED
およびLAST_MODIFIED
のサポートを示します:オブジェクト・ストア CREATED
LAST_MODIFIED
Oracle Cloud Infrastructureネイティブ タイムスタンプを返します タイムスタンプを返します Oracle Cloud Infrastructure Swift NULL
が戻されますタイムスタンプを返します Oracle Cloud Infrastructure Classic NULL
が戻されますタイムスタンプを返します Amazon S3 NULL
が戻されますタイムスタンプを返します Amazon S3互換 NULL
が戻されますタイムスタンプを返します Azure タイムスタンプを返します タイムスタンプを返します GitHubリポジトリ -
チェックサム値は、MD5チェックサムです。これは、オブジェクトの内容に基づいて計算されます。
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
);
パラメータ
パラメータ | 説明 |
---|---|
|
ソースのCloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
ファイルの移動が必要なターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、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プロシージャ
このプロシージャはオーバーロードされています。このプロシージャは、1つの形式でAutonomous DatabaseからCloud Object Storageにファイルをコピーします。また、このプロシージャは、Autonomous Databaseからクラウド・オブジェクト・ストレージに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);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、 |
|
オブジェクトまたはファイルURI。URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
Autonomous Database上のディレクトリの名前。 足2 |
|
Autonomous Databaseからクラウド・オブジェクト・ストレージにコピーする |
|
指定されたディレクトリ内のファイルの名前。 |
|
オブジェクトの格納に使用する圧縮を指定します。 デフォルト値: |
脚注2
DBMS_CLOUD.PUT_OBJECT
をADMIN以外のユーザーで実行するには、そのユーザーにディレクトリに対する読取り権限を付与する必要があります。たとえば、次のコマンドを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 Object Storage |
50GB |
Amazon S3 |
5 GB |
Azure Blob StorageまたはAzure Data Lake Storage |
256 MB |
Amazon S3互換 |
オブジェクト・ストア・プロバイダによって設定されます。詳細は、プロバイダのドキュメントを参照してください。 |
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
);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
ファイルをコピーする必要があるターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、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
);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
Autonomous Database内のオブジェクト・ストレージの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、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
);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
Autonomous Database内のオブジェクト・ストレージの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、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
);
パラメータ
パラメータ | 説明 |
---|---|
|
ソースのCloud Object Storageにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
ファイルの移動が必要なターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URI形式を参照してください。 |
|
ターゲットのクラウドのオブジェクト・ストレージの場所にアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
ファイルをフィルタするREGEX式を指定します。REGEX式パターンは、
詳細は、REGEXP_LIKE条件を参照してください。 |
|
ファイル操作の追加構成オプションを指定します。これらのオプションはJSON文字列として指定されます。 サポートされている形式のオプションは次のとおりです。
|
|
このパラメータを使用して、 |
例
BEGIN
DBMS_CLOUD.BULK_MOVE
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
ソースおよびターゲットのURIが同じオブジェクト・ストレージ・バケットまたはフォルダを指している場合、エラーが返されます。
親トピック: バルク・ファイル管理用の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
);
パラメータ
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効な場合は、
|
|
ファイルをアップロードするオブジェクト・ストレージの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、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 API
この項では、Autonomous Databaseで提供されるDBMS_CLOUD
REST APIについて説明します。
REST API | 説明 |
---|---|
このファンクションは、Autonomous DatabaseでHTTPレスポンス・ヘッダーをJSONオブジェクト内のJSONデータとして返します。 | |
このファンクションは、Autonomous DatabaseでHTTPレスポンスをRAW形式で返します。これは、HTTPレスポンスがバイナリ形式である必要がある場合に便利です。 | |
このファンクションは、Autonomous DatabaseでHTTPレスポンス・ステータス・コードを整数として戻します。ステータス・コードは、リクエストが成功したかどうかを識別するのに役立ちます。 | |
このファンクションは、Autonomous DatabaseでHTTPレスポンスをTEXT形式(VARCHAR2 またはCLOB )で返します。通常、ほとんどのクラウドREST APIは、JSONレスポンスをテキスト形式で戻します。この関数は、HTTPレスポンスがテキスト形式であることが予想される場合に役立ちます。
|
|
このファンクションは、構成された結果キャッシュ・サイズを返します。 |
|
このファンクションは、Autonomous DatabaseでHTTPリクエストを開始してレスポンスを取得し、レスポンスを終了します。このファンクションは、引数、戻りレスポンス・コードおよびペイロードを使用してクラウド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ファンクション
このファンクションは、HTTPレスポンスをTEXT
形式(VARCHAR2
またはCLOB
)で返します。通常、ほとんどのクラウド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 Object Storageバケットを作成および削除する例と、テナンシ内のすべてのコンパートメントをリストする例を示します。
親トピック: DBMS_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
リクエストを行い、結果を取得して保存できます。これらのファンクションは、サポートされている次のクラウド・サービスを使用して任意の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 Reference」を参照してください。
- Oracle Cloud Infrastructure Classic
Oracle Cloud Infrastructure Classic REST APIの詳細は、すべてのRESTエンドポイントを参照してください。
- GitHubリポジトリ
詳細は、GitHub REST APIを参照してください。
親トピック: DBMS_CLOUD REST API
DBMS_CLOUD REST APIの定数
DBMS_CLOUD.SEND_REQUEST
を使用してHTTP
リクエストを行うためのDBMS_CLOUD
定数について説明します。
DBMS_CLOUD
は、GET
、PUT
、POST
、HEAD
およびDELETE
HTTPメソッドをサポートしています。HTTPリクエストに使用されるREST APIメソッドは通常、クラウドREST APIドキュメントに記載されています。
名前 | タイプ | 値 |
---|---|---|
METHOD_DELETE |
VARCHAR2(6) |
'DELETE' |
METHOD_GET |
VARCHAR2(3) |
'GET' |
METHOD_HEAD |
VARCHAR2(4) |
'HEAD' |
METHOD_POST |
VARCHAR2(4) |
'POST' |
METHOD_PUT |
VARCHAR2(3) |
'PUT' |
親トピック: DBMS_CLOUD REST API
DBMS_CLOUD 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
REST APIをDBMS_CLOUD.SEND_REQUEST
で保存すると、保存されたデータは同じセッション(接続)でのみ使用可能です。セッションが終了すると、保存されたデータは使用できなくなります。
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 API
DBMS_CLOUD REST APIの結果のcache_scopeパラメータ
DBMS_CLOUD.SEND_REQUEST
を使用してDBMS_CLOUD
REST APIの結果を保存すると、cache_scope
の値に基づいてSESSION_CLOUD_API_RESULTS
の結果へのアクセスが提供されます。
デフォルトでは、cache_scope
は'PRIVATE'
であり、セッションの現在のユーザーのみが結果にアクセスできます。cache_scope
を'PUBLIC'
に設定すると、すべてのセッション・ユーザーが結果にアクセスできます。cache_scope
のデフォルト値の指定では、各ユーザーは、実行者権限で起動するプロシージャによって生成されたDBMS_CLOUD.SEND_REQUEST
REST APIの結果のみを表示できます。セッションでDBMS_CLOUD.SEND_REQUEST
を起動する場合、cache_scope
の値に基づいて、現在のユーザーがキャッシュ内の結果を表示できるかどうかを決定する3つの可能性があります:
-
DBMS_CLOUD.SEND_REQUEST
を最上位レベルの文として直接実行し、DBMS_CLOUD.SEND_REQUEST
をコールすると、REST APIの結果は同じユーザー名で保存されます。この場合、cache_scope
に設定されたデフォルト値PRIVATE'
を持つすべての結果にアクセスできます。 -
あなたはラッパー実行者権限プロシージャを記述し、現在のユーザーとして
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 |
Oracle Cloud Infrastructure、AMAZON_S3、AZURE_BLOBなどのDBMS_CLOUD REST APIクラウド・タイプ
|
REQUEST_METHOD |
DBMS_CLOUD REST APIリクエスト・メソッド(GET 、PUT 、HEAD など) |
REQUEST_HEADERS |
DBMS_CLOUD REST APIリクエスト・ヘッダー
|
REQUEST_BODY_TEXT |
DBMS_CLOUD REST APIリクエスト本文(CLOB ) |
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 API
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 API
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 API
GET_RESPONSE_TEXTファンクション
このファンクションは、HTTPレスポンスをTEXT
形式(VARCHAR2
またはCLOB
)で戻します。通常、ほとんどのクラウド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 API
GET_API_RESULT_CACHE_SIZEファンクション
このファンクションは、構成された結果キャッシュ・サイズを返します。キャッシュ・サイズの値は、現在のセッションにのみ適用されます。
構文
DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE
()
RETURN NUMBER;
親トピック: DBMS_CLOUD REST API
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 |
JSON形式の対応するクラウド・ネイティブAPIのHTTPリクエスト・ヘッダー。認証ヘッダーは自動的に設定され、カスタム・ヘッダーのみを渡します。 |
|
非同期リクエストURL。 URLを取得するには、APIのリストからリクエストAPIを選択します(https://docs.cloud.oracle.com/en-us/iaas/api/を参照)。次に、左ペインでリクエストのAPIにナビゲートします。たとえば、「データベース・サービスAPI」→「Autonomous Database」→「StopAutonomousDatabase」です。このページには、APIホームが表示されます(ベース・エンドポイントも表示されます)。次に、作業リクエストのWorkRequestリンク用に取得した相対パスを使用してベース・エンドポイントを追加します。 |
wait_for_states |
待機状態は次のタイプのステータスです:
|
timeout |
パラメータ デフォルト値は |
cache |
デフォルト値は |
cache_scope |
すべてのユーザーがこのリクエスト結果のキャッシュにアクセスできるかどうかを指定します。有効な値: |
body |
|
例外
例外 | エラー | 説明 |
---|---|---|
invalid_req_method |
ORA-20023 |
|
invalid_req_header |
ORA-20024 |
Request headers passed to |
使用上のノート
-
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 API
SET_API_RESULT_CACHE_SIZEプロシージャ
このプロシージャは、現在のセッションの最大キャッシュ・サイズを設定します。キャッシュ・サイズの値は、現在のセッションにのみ適用されます。
構文
DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
(
cache_size IN NUMBER);
パラメータ
パラメータ | 説明 |
---|---|
cache_size |
指定した値 キャッシュ・サイズが デフォルトのキャッシュ・サイズは |
例外
例外 | エラー | 説明 |
---|---|---|
invalid API result cache size |
ORA-20032 |
最小値は0、最大値は10000です。この例外は、入力パラメータが0より小さいか10000より大きい場合に表示されます。 |
例
EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
(101);
親トピック: DBMS_CLOUD REST API
DBMS_CLOUD REST APIの例
DBMS_CLOUD.SEND_REQUEST
を使用してOracle Cloud Infrastructure Object Storageバケットを作成および削除する例と、テナンシ内のすべてのコンパートメントをリストする例を示します。
次の例では、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
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。 -
ここでは、
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
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。 -
ここでは、
region
はエンドポイント・リージョンです。詳細は、APIリファレンスおよびエンドポイントのオブジェクト・ストレージAPIリファレンスを参照してください。たとえば、region
はus-phoenix-1
です。
コンパートメントのリストの例
HTTP GET
メソッドでDBMS_CLOUD.SEND_REQUEST
を使用して、テナント(ルート・コンパートメント)内のすべてのコンパートメントをリストする例を示します。この例では、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;
/
ここでは、region
はエンドポイント・リージョンです。詳細は、APIリファレンスおよびエンドポイントのIdentity and Access Management (IAM) APIリファレンスを参照してください。たとえば、region
はuk-london-1
です。
非同期リクエストの例
HTTP POST
メソッドでDBMS_CLOUD.SEND_REQUEST
を使用してAutonomous Databaseの停止操作を実行し、ステータスを待機する例を示します。この例では、DBMS_CLOUD.SEND_REQUEST
をasync_request_url
、wait_for_states
およびtimeout
パラメータとともに使用する方法を示します。
--
-- 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;
/
ここでは、region
はエンドポイント・リージョンです。詳細は、APIリファレンスおよびエンドポイントのIdentity and Access Management (IAM) APIリファレンスを参照してください。たとえば、region
はuk-london-1
です。
ocid
は、Oracle Cloud Infrastructureリソース識別子です。詳細は、リソース識別子を参照してください。
親トピック: DBMS_CLOUD REST API
脚注の説明
脚注3: Azure Cloud REST APIコールのサポートは、ドメインblob.windows.netに制限されます。