機械翻訳について

46 DBMS_CLOUD

DBMS_CLOUDパッケージは、クラウド・リソースを操作するためのデータベース・ルーチンを提供します。

この章のトピックは、次のとおりです:

46.1 DBMS_CLOUDのインストール

パッケージのDBMS_CLOUDファミリは、Oracle Databaseで事前インストールまたは構成されていません。 DBMS_CLOUDパッケージを手動でインストールし、このパッケージを使用するようにユーザーまたはロールを構成する必要があります。

Oracle Database 23.7を使用したインストールおよび構成の詳細は、「DBMS_CLOUD Autonomous Databaseパッケージの使用」を参照してください。

DBMS_CLOUD パッケージのインストールおよびユーザー/ロールの構成でサポートされているその他のリリースについては、Doc ID 2748362.1のMOS-NOTEを参照してください。

46.2 DBMS_CLOUDエンドポイント管理

DBMS_CLOUDを使用した操作での事前構成済エンドポイントURIsの形式について説明します。

DBMS_CLOUDパッケージは、サービス用に事前構成された多数のオブジェクト・ストアおよびRESTエンドポイントをサポートしています。 また、このパッケージでは、ネットワーク・アクセス制御リスト(ACLs)を介してそのようなエンドポイントを適切に有効化した後に、事前構成されていない追加のエンドポイントにアクセスすることもできます。

事前構成済エンドポイントの認証は、DBMS_CLOUDで自動的に理解され、導出されます。 追加の顧客管理エンドポイントの適切な認証タイプを知るために、DBMS_CLOUDは、URIエンドポイントの認証タイプを示すURIスキームをサポートしています。 URIエンドポイントは、セキュアなHTTPリクエストのためにポート443でHTTPSをサポートする必要があります。

46.3 DBMS_CLOUDサブプログラムおよびREST API

この項では、Oracle Databaseで提供されているDBMS_CLOUDサブプログラムおよびREST APIについて説明します。

DBMS_CLOUDパッケージは次のもので構成されます:

46.3.1 アクセス管理用のDBMS_CLOUD

資格証明の作成、削除および更新を含む、DBMS_CLOUDパッケージ内の資格証明管理用のサブプログラム。

サブプログラム 説明

CREATE_CREDENTIALプロシージャ

このプロシージャでは、クラウド・サービスの資格証明をOracle Databaseに格納します。

DROP_CREDENTIALプロシージャ

このプロシージャでは、Oracle Databaseから既存の資格証明を削除します。

UPDATE_CREDENTIALプロシージャ

このプロシージャでは、Oracle Database内のクラウド・サービス資格証明の属性を更新します。
46.3.1.1 CREATE_CREDENTIALプロシージャ

このプロシージャでは、クラウド・サービスの資格証明をOracle Databaseに格納します。

格納されているクラウド・サービス資格証明はデータのロードやクラウドに存在する外部データの問合せのためにクラウド・サービスにアクセスする場合や、credential_nameパラメータを指定したDBMS_CLOUDプロシージャを使用する場合に使用します。 このプロシージャはオーバーロードされています。

  • Oracle Cloud Infrastructure関連のパラメータ(user_ocidtenancy_ocidprivate_keyfingerprintなど)は、Oracle Cloud Infrastructure署名キー認証を使用している場合にのみ使用します。

構文

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);


パラメータ

パラメータ 説明

credential_name

格納する資格証明の名前。 credential_nameパラメータは、スペースやハイフンを使用できないOracleオブジェクトのネーミング規則に準拠している必要があります。

username

username引数とpassword引数の両方で、クラウド・サービスの資格証明を指定します。 様々なクラウド・サービスのusernameおよびpasswordの指定内容については、使用上のノートを参照してください。

password

username引数とpassword引数の両方で、クラウド・サービスの資格証明を指定します。

user_ocid

ユーザーのOCIDを指定します。 ユーザーのOCIDを取得する方法の詳細は、テナンシのOCIDとユーザーのOCIDの取得場所に関する項を参照してください。

tenancy_ocid

テナンシのOCIDを指定します。 テナンシのOCIDを取得する方法の詳細は、テナンシのOCIDとユーザーのOCIDの取得場所に関する項を参照してください。

private_key

生成した秘密キーを指定します。 パスフレーズ付きで生成したプライベート・キーはサポートされていません。 この秘密キーは、パスフレーズなしで生成する必要があります。 PEM形式でキー・ペアを生成する方法の詳細は、API署名キーの生成方法に関する項を参照してください。

fingerprint

フィンガープリントを指定します。 ユーザーのアカウントに生成した公開キーをアップロードすると、コンソールにフィンガープリントが表示されます。 この引数には表示されたフィンガープリントを使用します。 詳細は、キーのフィンガープリントの取得方法に関する項およびAPI署名キーの生成方法に関する項を参照してください。

使用上のノート

  • この操作では、資格証明が暗号化形式でデータベースに格納されます。

  • user_credentials表を問い合せると、自分のスキーマの資格証明を確認できます。

  • ADMINユーザーは、dba_credentials表を問い合せると、すべての資格証明を確認できます。

  • 資格証明の作成は、クラウド・サービスの資格証明が変更されないかぎり1回のみ必要です。 資格証明を格納すると、credential_nameパラメータが必要になるDBMS_CLOUDプロシージャに同じ名前の資格証明を使用できるようになります。

  • このプロシージャはオーバーロードされています。 キー・ベース認証の属性user_ocidtenancy_ocidprivate_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;
/

へのコールを認証する場合は、認証トークン・ベースの資格証明を使用します。 他のタイプのOracle Cloud Infrastructureクラウド・サービスへのコールには、Oracle Cloud Infrastructure署名キー・ベースの資格証明を使用します。

場合、usernameパラメータ値には、アイデンティティ・ドメインとプロファイルからのユーザー名を含める必要があります。 ユーザーに関連付けられているアイデンティティ・ドメインは、Oracle Cloud Infrastructureコンソールで確認できます。

たとえば:

oracleidentitycloudservice/adb_user@example.com

デフォルトのアイデンティティ・ドメインでは、ドメイン名Defaultを含める必要はありません。 たとえば:

adb_user@example.com

Oracle Cloud Infrastructure署名キー・ベースの資格証明

Oracle Cloud Infrastructure署名キー認証では、Oracle Cloud Infrastructure署名キー関連のパラメータ(user_ocidtenancy_ocidprivate_keyfingerprintなど)を使用します。

たとえば:

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にある場合、usernameOracle Cloud Infrastructure Classicユーザー名になり、passwordOracle Cloud Infrastructure Classicパスワードになります。

Amazon Web Services (AWS)資格証明

ソース・ファイルがAmazon S3にある場合やAWS APIをコールする場合、usernameはAWSアクセス・キーIDになり、passwordはAWSシークレット・アクセス・キーになります。 AWS IDとアクセス管理を参照してください。

Microsoft Azure資格証明

ソース・ファイルがAzure Blob Storageにある場合やAzure APIをコールする場合、usernameはAzureストレージのアカウント名になり、passwordはAzureストレージのアカウント・アクセス・キーになります。 Azureストレージ・アカウントについてを参照してください。

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;
/
46.3.1.2 DROP_CREDENTIALプロシージャ

このプロシージャでは、Oracle Databaseから既存の資格証明を削除します。

構文

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

パラメータ

パラメータ 説明

credential_name

削除する資格証明の名前。

46.3.1.3 UPDATE_CREDENTIALプロシージャ

このプロシージャは、指定されたcredential_nameの新しい値で属性を更新します。

格納した資格証明は、データのロードやクラウドに存在する外部データを問い合せる場合や、DBMS_CLOUDプロシージャの使用時にcredential_nameパラメータを指定する場合に使用します。

構文

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

パラメータ

パラメータ 説明

credential_name

更新する資格証明の名前。

attribute

更新する属性の名前。

ユーザー名/パスワード・タイプの資格証明の場合、有効なattribute値は次のとおりです: USERNAMEおよびPASSWORD

詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

value

指定された属性の新しい値。

使用上のノート

  • ユーザー名の値では大文字と小文字が区別されます。 二重引用符または空白を含むことはできません。

  • DBA権限を持つユーザーは、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;
/

46.3.2 オブジェクトおよびファイル用のDBMS_CLOUD

DBMS_CLOUDパッケージ内のオブジェクトおよびファイル管理のサブプログラム。

サブプログラム 説明

COPY_COLLECTIONプロシージャ

このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから、既存のJSONコレクションにデータをロードします。

COPY_DATAプロシージャ

このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから、既存のOracle Database表にデータをロードします。

AvroまたはParquetのファイルに対応するCOPY_DATAプロシージャ

formatパラメータtypeを値orcparquetまたはavroに設定したこのプロシージャは、クラウドのORC、ParquetまたはAvroファイルから、またはディレクトリ内のORC、ParquetまたはAvroファイルから、既存のOracle Database表にデータをロードします。

テキスト・ファイルと同様に、データはソースORC、ParquetまたはAvroファイルから既存の内部表にコピーされます。

COPY_OBJECTプロシージャ

このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のクラウド・オブジェクト・ストレージ・バケットにファイルをコピーします。

CREATE_EXTERNAL_TABLEプロシージャ

このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルに外部表を作成します。 これにより、Oracle Databaseから外部データに対する問合せを実行できるようになります。

Apache IcebergのCREATE_EXTERNAL_TABLEプロシージャ

このプロシージャは、サポートされている構成の「Apache Iceberg」表の外部表を作成します。

AvroまたはParquetファイルに対応するCREATE_EXTERNAL_TABLEプロシージャ

formatパラメータtypeを値parquetorcまたはavroに設定したこのプロシージャは、クラウドまたはディレクトリ内のParquet、ORCまたはAvro形式のファイルを使用して外部表を作成します。

これにより、Oracle Databaseから外部データに対する問合せを実行できるようになります。

CREATE_EXTERNAL_PART_TABLEプロシージャ

このプロシージャでは、クラウド内のファイルにパーティション化された外部表を作成します。 これにより、Oracle Databaseから外部データに対する問合せを実行できるようになります。

CREATE_HYBRID_PART_TABLEプロシージャ

このプロシージャでは、ハイブリッド・パーティション表を作成します。 これにより、Oracle Databaseからハイブリッド・パーションデータに対する問合せを実行できるようになります。

DELETE_ALL_OPERATIONSプロシージャ

このプロシージャでは、スキーマ内のuser_load_operations表に記録されているすべてのデータ・ロード操作をクリアするか、typeパラメータで指定したタイプのすべてのデータ・ロード操作をクリアします。

DELETE_FILEプロシージャ

このプロシージャでは、Oracle Databaseの指定したディレクトリから指定したファイルを削除します

DELETE_OBJECTプロシージャ

このプロシージャでは、オブジェクト・ストアの指定したオブジェクトを削除します。

DELETE_OPERATIONプロシージャ

このプロシージャは、入力としてoperation_idを受け入れ、指定されたoperation_idに関連付けられたログを削除します。

EXPORT_DATAプロシージャ

このプロシージャは、問合せの結果に基づいて、Oracle Databaseからクラウド内のファイルにデータをエクスポートします。 オーバーロードされた形式では、operation_idパラメータを使用できるようになります。 指定したformatパラメータのtypeオプションに応じて、プロシージャはCSV、JSONまたはXML 「;または、ORACLE_DATAPUMPアクセス・ドライバを使用してダンプ・ファイルにデータを書き込む」のオプションを含むテキストとして行をクラウド・オブジェクト・ストアにエクスポートします。

GET_OBJECTプロシージャ/ファンクション

このプロシージャはオーバーロードされています。 プロシージャ形式では、Cloud Object Storageからオブジェクトを読み取り、そのオブジェクトをOracle Databaseにコピーします。 ファンクション形式では、Cloud Object Storageからオブジェクトを読み取り、BLOBOracle Databaseに返します。

LIST_FILESファンクション

このファンクションでは、指定されたディレクトリにあるファイルをリストします。 結果には、ファイル名とファイルに関する追加のメタデータ(バイト単位のファイル・サイズ、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。

LIST_OBJECTSファンクション

このファンクションでは、オブジェクト・ストア内の指定された場所にあるオブジェクトをリストします。 結果には、オブジェクト名とオブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。

MOVE_OBJECTプロシージャ

このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のバケットにオブジェクトを移動します。

PUT_OBJECTプロシージャ

このプロシージャはオーバーロードされています。 このプロシージャには、Oracle DatabaseからCloud Object Storageにファイルをコピーする形式があります。 また、このプロシージャには、Oracle DatabaseからCloud Object StorageにBLOBをコピーする形式もあります。

SYNC_EXTERNAL_PART_TABLEプロシージャ

このプロシージャは、クラウド内のファイルからの外部パーティション表の更新を簡略化します。 このプロシージャは、新しいパーティションが追加されたとき、または外部パーティション表のオブジェクト・ストア・ソースからパーティションが削除されたときに実行します。

VALIDATE_EXTERNAL_TABLEプロシージャ

このプロシージャでは、外部表のソース・ファイルを検証して、ログ情報を生成し、外部表に指定したフォーマット・オプションと一致しない行をOracle Databasebadfile表に格納します。

VALIDATE_EXTERNAL_PART_TABLEプロシージャ

このプロシージャでは、パーティション化された外部表のソース・ファイルを検証して、ログ情報を生成し、外部表に指定したフォーマット・オプションと一致しない行をOracle Databasebadfile表に格納します。

VALIDATE_HYBRID_PART_TABLEプロシージャ

このプロシージャでは、ハイブリッド・パーション表のソース・ファイルを検証して、ログ情報を生成し、ハイブリッド表に指定したフォーマット・オプションと一致しない行をOracle Databasebadfile表に格納します。
46.3.2.1 COPY_COLLECTIONプロシージャ

このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリからJSONコレクションにデータをロードします。 指定されたJSONコレクションが存在しない場合は、プロシージャによって作成されます。 オーバーロードされた形式では、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
);

パラメータ

パラメータ 説明

collection_name

データのロード先となるJSONコレクションの名前。 この名前のコレクションがすでに存在する場合は、指定したデータがロードされ、そうでない場合は新しいコレクションが作成されます。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

file_uri_listでディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

REGEXP_LIKE条件の詳細は、「REGEXP_LIKE条件」を参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。 ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。 デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。 ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。 文字"*"は、複数の文字に対応するワイルドカードとして使用できます。文字"?"は、1文字に対応するワイルドカードとして使用できます。 例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。 例:'MY_DIR:''filename.ext' これは、filenameが引用符(')で始まることを示します。

format

ソース・ファイルの形式を示すオプション。 これらのオプションはJSON文字列として指定されます。

サポートされている形式は次のとおりです: characterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrayskeyassignmentおよびkeypath

前述したJSONデータのフォーマットとは別に、Autonomous Databaseでは他のフォーマットもサポートされています。 Autonomous Databaseでサポートされている書式引数のリストについては、「DBMS_CLOUDパッケージ形式オプション」を参照してください。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

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;
/
46.3.2.2 COPY_DATAプロシージャ

このプロシージャでは、クラウド内のファイルまたはディレクトリ内のファイルから既存のOracle 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);

パラメータ

パラメータ 説明

table_name

データベースのターゲット表の名前。 ターゲット表は、COPY_DATAを実行する前に作成しておく必要があります。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

このパラメータは、file_uri_listでディレクトリまたは事前認証済リクエスト(PAR) URLを指定する場合には使用されません。

file_uri_list

このパラメータでは、次のいずれかを指定します:

  • ソース・ファイルURIのカンマ区切りリスト

  • 事前認証済リクエスト(PAR) URLのカンマ区切りリスト

  • 1つ以上のディレクトリおよびソース・ファイル

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

クラウドのソース・ファイルURI

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

事前認証済リクエスト(PAR) URL

次のものに対して外部表を作成できます:
  • 事前認証済リクエスト(PAR) URLであり、データにフィルタおよび句も適用します。 たとえば、WHERE句を使用してデータをフィルタしたり、ORDER BY句を使用してデータをソートできます。

    たとえば:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • 事前認証済リクエスト(PAR) URLのカンマ区切りリスト。含まれるすべてのPAR URLの列名、列の順序および列のデータ型が同じである必要があります。

    たとえば:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。 ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。 デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。 ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。 文字"*"は、複数の文字に対応するワイルドカードとして使用できます。文字"?"は、1文字に対応するワイルドカードとして使用できます。 例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。 例:'MY_DIR:''filename.ext' これは、filenameが引用符(')で始まることを示します。

schema_name

ターゲット表が存在するスキーマの名前。 デフォルト値は、NULLです。この値は、ターゲット表がプロシージャを実行するユーザーと同じスキーマ内にあることを意味します。

field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値は、NULLです。この値は、フィールドとそのデータ型がターゲット表の定義によって決まることを意味します。 この引数の構文は、通常のOracle外部表のfield_list句と同じです。

field_listの使用例は、「CREATE_EXTERNAL_TABLEプロシージャ」を参照してください。

format

ソース・ファイル、ログ・ファイルおよび不良ファイルの形式を示すオプション。 オプションのリストと値の指定方法は、「DBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。

AvroまたはParquetファイル・フォーマットのオプションについては、「AvroまたはParquetに対応するDBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

使用上のノート

デフォルトのレコード・デリミタは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;
/
46.3.2.3 AvroまたはParquetファイルに対応するCOPY_DATAプロシージャ
このプロシージャでは、formatパラメータのtypeを値avroまたはparquetに設定することで、クラウド内のAvroまたはParquetファイルあるいはディレクトリ内のファイルから既存のOracle Database表にデータをロードします。

テキスト・ファイルと同様に、データはソースのAvroまたは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);

パラメータ

パラメータ 説明

table_name

データベースのターゲット表の名前。 ターゲット表は、COPY_DATAを実行する前に作成しておく必要があります。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

file_uri_listでディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。 ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。 デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。 ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。 文字"*"は、複数の文字に対応するワイルドカードとして使用できます。文字"?"は、1文字に対応するワイルドカードとして使用できます。 例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。 例:'MY_DIR:''filename.ext' これは、filenameが引用符(')で始まることを示します。

schema_name

ターゲット表が存在するスキーマの名前。 デフォルト値は、NULLです。この値は、ターゲット表がプロシージャを実行するユーザーと同じスキーマ内にあることを意味します。

field_list

AvroまたはParquetファイルの場合は無視されます。

ソースのフィールドは、名前によって外部表の列と一致します。 ソースのデータ型は、外部表の列データ型に変換されます。

Parquetファイルに対するマッピングの詳細は、「DBMS_CLOUDパッケージのParquetからOracleデータ型へのマッピング」を参照してください。

Avroファイルに対するマッピングの詳細は、「DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピング」を参照してください。

format

ソース・ファイルの形式を示すオプション。 「AvroまたはParquet」ファイルでは、2つのオプションのみがサポートされています: 「DBMS_CLOUD ORCからOracleデータ型へのマッピングのパッケージ化」を参照してください。

使用上のノート

  • その他のデータ・ファイルと同様に、AvroとParquetのデータ・ロードにより、表dba_load_operationsuser_load_operationsで表示可能なログが生成されます。 ロード操作ごとに、ログが含まれている表を示すレコードがdba[user]_load_operationsに追加されます。

    このログ表では、ロードに関するサマリー情報が示されます。

  • AvroまたはParquetの場合、formatのパラメータtypeが値avroまたはparquetに設定されていると、BADFILE_TABLE表は常に空になります。

    • Parquetファイルの場合は、PRIMARY KEY制約のエラーによってORAエラーがスローされます。

    • 列のデータに変換エラーが発生した場合(たとえば、ターゲット列の大きさが変換後の値を保持するには不十分な場合)、その列の値はNULLに設定されます。 これにより拒否されたレコードの生成がなくなります。

46.3.2.4 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
);

パラメータ

パラメータ 説明

source_credential_name

ソース・クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。

source_credential_name値を指定しない場合、credential_nameNULLに設定されます。

source_object_uri

ソース・オブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_object_uri

ターゲット・オブジェクト・ストアのURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_credential_name

ターゲットのクラウド・オブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。

target_credential_name値を指定しない場合、target_object_urisource_credential_name値に設定されます。

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;
/
46.3.2.5 CREATE_EXTERNAL_PART_TABLEプロシージャ

このプロシージャは、クラウド内のファイルまたはディレクトリ内のファイルから外部パーティション表を作成します。 これにより、Oracle 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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

partitioning_clause

個別のパーティションの場所情報を含む、完全なパーティション化句を指定します。

partitioning_clauseパラメータを使用する場合、file_uri_listパラメータは許可されません。

file_uri_list

このパラメータでは、次のいずれかを指定します:

  • ソース・ファイルURIのカンマ区切りリスト

  • 事前認証済リクエスト(PAR) URLのカンマ区切りリスト

  • 1つ以上のディレクトリおよびソース・ファイル

クラウドのソース・ファイルURI

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。

このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

パラメータfile_uri_listを使用する場合、partitioning_clauseパラメータは許可されません。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

事前認証済リクエスト(PAR) URL

次のものに対して外部表を作成できます:
  • Oracle Database事前認証済リクエスト(PAR) URLであり、データにフィルタおよび句も適用します。 たとえば、WHERE句を使用してデータをフィルタしたり、ORDER BY句を使用してデータをソートできます。

    たとえば:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • Oracle Database事前認証済リクエスト(PAR) URLのカンマ区切りリスト。含まれるすべてのPAR URLの列名、列順序および列のデータ型が同じスキーマにあることを確認する必要があります。

    たとえば:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    

column_list

外部表の列名とデータ型のカンマ区切りリスト。 このパラメータには、file_uri_listパラメータで指定されたデータ・ファイルのタイプに応じて、次の要件があります。

  • 非構造化ファイルでは、column_listパラメータは必須です。 非構造化ファイル(CSVテキスト・ファイルなど)を使用する場合、column_listパラメータでは、データ・ファイル内のすべての列名とデータ型、およびオブジェクト名から導出されたパーティション列を指定する必要があります。

  • 構造化ファイルでは、column_listパラメータはオプションです。 たとえば、Avro、ORCまたはParquetデータ・ファイルでは、column_listは必要ありません。 column_listを含めない場合、formatパラメータのpartition_columnsオプションには、列名(name)とデータ型(type)の両方の指定を含める必要があります。

field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値は、NULLです。この値は、フィールドとそのデータ型がcolumn_listパラメータによって決まることを意味します。 この引数の構文は、通常のOracle外部表のfield_list句と同じです。 field_listの詳細は、『Oracle® Databaseユーティリティ』を参照してください。

format

フォーマット・オプションpartition_columnsでは、データ・ファイルのタイプ(構造化または非構造化)に応じて、パーティション列がファイル・パスから導出されるときのパーティション列のDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEの列名とデータ型を指定します。

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータが含まれ、データ・ファイルが非構造化(CSVテキスト・ファイルなど)の場合、partition_columnsにはデータ型は含まれません。 たとえば、このタイプのpartition_columnsの指定では、次のような形式を使用します。

    '"partition_columns":["state","zipcode"]'

    データ型は、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータで指定されるため、必須ではありません。

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータが含まれず、データ・ファイルが構造化(Avro、ORC、Parquetファイルなど)の場合、partition_columnsオプションには列名(name副句)とデータ型(type副句)の両方が含まれます。 たとえば、partition_columnsの指定を次に示します。

    '"partition_columns":[
                   {"name":"country", "type":"varchar2(10)"},
                   {"name":"year", "type":"number"},
                   {"name":"month", "type":"varchar2(10)"}]'

データ・ファイルが構造化されておらず、type副句がpartition_columnsで指定されている場合、type副句は無視されます。

Hive形式に基づかないオブジェクト名の場合、partition_columnsで指定された列の順序は、file_uri_listパラメータで指定されたファイル・パスのオブジェクト名に表示される順序と一致する必要があります。

ソース・ファイルの形式を説明するすべてのformatパラメータ・オプションを確認するには、「DBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。

使用上のノート

  • partitioning_clauseパラメータとfile_uri_listパラメータの両方を使用してこのプロシージャをコールすることはできません。

  • Avro、ParquetまたはORCデータ・ファイルを含む構造化データ・ファイルでは、column_listパラメータの指定はオプションです。 column_listを指定しない場合、formatパラメータのpartition_columnsオプションには、nametypeの両方を含める必要があります。

  • CSVテキスト・ファイルなどの非構造化データ・ファイルでは、column_listパラメータは必須です。

  • プロシージャDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEでは、次のものを含むサポート対象クラウド・オブジェクト・ストレージ・サービスでパーティション化された外部ファイルをサポートしています。
    • Oracle Cloud Infrastructureオブジェクト・ストレージ

    • Azure Blob Storage

    • Amazon S3

    • 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;
/
46.3.2.6 CREATE_EXTERNAL_TABLEプロシージャ

このプロシージャでは、クラウド内のファイルに基づいて、またはディレクトリ内のファイルから外部表を作成します。 これにより、Oracle 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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

このパラメータは、file_uri_listでディレクトリまたは事前認証済リクエスト(PAR) URLを指定する場合には使用されません。

file_uri_list

このパラメータでは、次のいずれかを指定します:

  • ソース・ファイルURIのカンマ区切りリスト。

  • 事前認証済リクエスト(PAR) URLのカンマ区切りリスト。

  • 1つ以上のディレクトリおよびソース・ファイル。

クラウドのソース・ファイルURI

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。

このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

事前認証済リクエスト(PAR) URL

次のものに対して外部表を作成できます:
  • Oracle Database事前認証済リクエスト(PAR) URLであり、データにフィルタおよび句も適用します。 たとえば、WHERE句を使用してデータをフィルタしたり、ORDER BY句を使用してデータをソートできます。

    たとえば:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • Oracle Database事前認証済リクエスト(PAR) URLのカンマ区切りリスト。含まれるすべてのPAR URLの列名、列順序および列のデータ型が同じスキーマにあることを確認する必要があります。

    たとえば:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    
ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。 ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。 デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。 ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。 文字"*"は、複数の文字に対応するワイルドカードとして使用できます。文字"?"は、1文字に対応するワイルドカードとして使用できます。 例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。 例:'MY_DIR:''filename.ext' これは、filenameが引用符(')で始まることを示します。

column_list

外部表の列名とデータ型のカンマ区切りリスト。

field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値は、NULLです。この値は、フィールドとそのデータ型がcolumn_listパラメータによって決まることを意味します。 この引数の構文は、通常のOracle Database外部表のfield_list句と同じです。 field_listの詳細は、Oracle Databaseユーティリティのfield_definitions句の「ORACLE_LOADERアクセス・ドライバ」field_listを参照してください。

format

ソース・ファイルの形式を示すオプション。 オプションのリストと値の指定方法は、「DBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。

AvroまたはParquet形式のファイルについては、「AvroまたはParquetファイルに対応するCREATE_EXTERNAL_TABLEプロシージャ」を参照してください。

使用上のノート

  • プロシージャDBMS_CLOUD.CREATE_EXTERNAL_TABLEでは、次のものを含むサポート対象クラウド・オブジェクト・ストレージ・サービスでパーティション化された外部ファイルをサポートしています。

    • Oracle Cloud Infrastructureオブジェクト・ストレージ

    • Azure Blob Storage

    • Amazon S3

    • 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
46.3.2.7 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
);

パラメータ

パラメータ 説明

table_name

外部表の名前。

credential_name

データ・ファイル、メタデータ・ファイルおよびIcebergカタログ(使用する場合)へのアクセスに使用される資格証明の名前。

AWSおよびOCI構成の場合、資格証明は「CREATE_CREDENTIALプロシージャ」の説明に従って作成する必要があります。

現在、AWS Amazonリソース名(ARN)資格証明はサポートされていません。

file_uri_list

Icebergカタログが指定されている場合、NULLである必要があります(次のformatパラメータを参照)。 アイスバーグ・カタログを使用しない場合は、file_uri_listにアイスバーグ・メタデータ・ファイルへのURIが含まれている必要があります。

column_list

列名および型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。

列名は、基礎となるデータ・ファイル(Parquet、Avro、ORC)で見つかった名前と一致します。 Oracleデータ型は、Icebergデータ型とParquetデータ型、Avroデータ型およびORCデータ型の間のParquet/Avro/ORCマッピングを使用して導出されます。 したがって、ユーザーはcolumn_listを指定できません。

field_list

列名およびデータ型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。

format

formatパラメータの構成は、Iceberg表のタイプ、AWSまたはOCI、および外部表の作成に使用される情報(データ・カタログや直接メタデータURIからの情報など)によって異なります。

例および詳細情報: 次の例を参照してください。「OCIデータ・フロー・サンプルでのIcebergのサポート」「DBMS_CLOUD URI形式」

例A WSAWS Glueカタログを使用したIceberg表

AWS Glueカタログを使用して「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パス。

例A WSメタデータ・ファイルURIを使用したIceberg表

メタデータ・ファイルURIを使用して「AWS Iceberg」表に表を作成する場合のformatパラメータは次のとおりです:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')

例O CIHadoopCatalogカタログを使用したIceberg表

HadoopCatalogカタログを使用してOCIデータ・フローによって作成された「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パス。

例O CIメタデータ・ファイルのURIを使用したIceberg表

メタデータ・ファイルのURIを使用して「OCI Iceberg」表に表を作成する場合のformatパラメータは次のとおりです:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')
ここで、access_protocolパラメータには、次のように1つの要素を持つJSONオブジェクトが含まれます:
  • protocol_type: 'iceberg'である必要があります
46.3.2.8 AvroまたはParquetファイルに対応するCREATE_EXTERNAL_TABLEプロシージャ
formatパラメータtypeを値avroまたはparquetに設定したこのプロシージャは、クラウドまたはディレクトリ内の「AvroまたはParquet」フォーマット・ファイルを使用して外部表を作成します。

これにより、Oracle 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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

file_uri_listでディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。

このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.parquet'

URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。 ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。 デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。 ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。 文字"*"は、複数の文字に対応するワイルドカードとして使用できます。文字"?"は、1文字に対応するワイルドカードとして使用できます。 例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。 例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。 例:'MY_DIR:''filename.ext' これは、filenameが引用符(')で始まることを示します。

column_list

(オプション)このフィールドを指定すると、スキーマ、列およびデータ型の自動導出を指定するformat->schemaパラメータがオーバーライドされます。 詳細は、formatパラメータを参照してください。

AvroまたはParquetソースに対してcolumn_listを指定する場合は、列名がファイル内の列と一致する必要があります。 Oracleデータ型は、AvroまたはParquetデータ型に適切にマップする必要があります。

Parquetファイルの詳細は、「DBMS_CLOUDパッケージのParquetからOracleデータ型へのマッピング」を参照してください。

Avroファイルの詳細は、「DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピング」を参照してください。

field_list

AvroまたはParquetファイルの場合は無視されます。

ソースのフィールドは、名前によって外部表の列と一致します。 ソースのデータ型は、外部表の列データ型に変換されます。

Parquetファイルの詳細は、「DBMS_CLOUDパッケージのParquetからOracleデータ型へのマッピング」を参照してください。

Avroファイルの詳細は、「DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピング」を参照してください。

format

「AvroまたはParquet」 typeソース・ファイルの詳細は、「AvroまたはParquetのDBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。

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')

AvroまたはParquet列名のOracle列名へのマッピング

Oracle SQLの列名のマッピング方法と列名の変換の使用方法の詳細は、「DBMS_CLOUDパッケージのAvroおよびParquetからOracle列名へのマッピング」を参照してください。

46.3.2.9 CREATE_HYBRID_PART_TABLEプロシージャ

このプロシージャでは、ハイブリッド・パーティション表を作成します。 これにより、クラウドのデータベース・オブジェクトおよびファイル、またはディレクトリ内のデータベース・オブジェクトおよびファイルを使用して、Oracle 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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

partitioning_clause

個別のパーティションの場所情報を含む、完全なパーティション化句を指定します。

ディレクトリを使用するには、パーティション化句でLOCATIONおよびDEFAULT DIRECTORYの値がサポートされます。

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。 正規表現パターンはディレクトリ名ではサポートされていません。

たとえば:

partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
				    ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.txt''),….
次のように、事前認証済リクエスト(PAR) URLを使用して外部表を作成できます:
  • 単一のOracle Database事前認証済リクエスト(PAR) URLを指定し、データにフィルタおよび句を適用します。 たとえば、WHERE句を使用してデータをフィルタしたり、ORDER BY句を使用してデータをソートできます。

  • Oracle Database事前認証済リクエスト(PAR) URLのカンマ区切りリストを指定します。含まれるすべてのPAR URLの列名、列の順序および列のデータ型が同じである必要があります。

column_list

外部表の列名とデータ型のカンマ区切りリスト。

field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。 デフォルト値は、NULLです。この値は、フィールドとそのデータ型がcolumn_listパラメータによって決まることを意味します。 この引数の構文は、通常のOracle外部表のfield_list句と同じです。 field_listの詳細は、『Oracle® Databaseユーティリティ』を参照してください。

format

ソース・ファイルの形式を示すオプション。 オプションのリストと値の指定方法は、「DBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。

使用上のノート

  • プロシージャDBMS_CLOUD.CREATE_HYBRID_PART_TABLEでは、次のものを含むサポート対象クラウド・オブジェクト・ストレージ・サービスでパーティション化された外部ファイルをサポートしています。

    • Oracle Cloud Infrastructureオブジェクト・ストレージ

    • Azure Blob Storage

    • Amazon S3

    • 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;
/
46.3.2.10 DELETE_ALL_OPERATIONSプロシージャ

このプロシージャでは、スキーマ内のuser_load_operations表に記録されているすべてのデータ・ロード操作をクリアするか、typeパラメータで指定したタイプのすべてのデータ・ロード操作をクリアします。

構文

DBMS_CLOUD.DELETE_ALL_OPERATIONS (
	type      IN VARCHAR DEFAULT NULL);

パラメータ

パラメータ 説明

type

削除する操作のタイプを指定します。 Typeの値は、user_load_operations表のTYPE列でわかります。

typeの指定がない場合は、すべての行が削除されます。

使用上のノート

  • DBMS_CLOUD.DELETE_ALL_OPERATIONSでは、現在実行中の操作(「実行中」ステータスの操作)は削除されません。

46.3.2.11 DELETE_FILEプロシージャ

このプロシージャでは、Oracle Databaseの指定したディレクトリから指定したファイルを削除します。

構文

 DBMS_CLOUD.DELETE_FILE ( 
       directory_name     IN VARCHAR2,
       file_name          IN VARCHAR2); 

パラメータ

パラメータ 説明

directory_name

Oracle Databaseインスタンスにあるディレクトリの名前。

file_name

削除するファイルの名前。

ノート:

DBMS_CLOUD.DELETE_FILEを実行するには、そのユーザーに対象ファイルを格納しているディレクトリに対する書込み権限を付与する必要があります。 たとえば、次のコマンドをADMINとして実行し、db_userに書込み権限を付与します。
GRANT WRITE ON DIRECTORY data_pump_dir TO db_user;

BEGIN
   DBMS_CLOUD.DELETE_FILE(
      directory_name =>  'DATA_PUMP_DIR',
      file_name => 'exp1.dmp' );
   END;
/ 
46.3.2.12 DELETE_OBJECTプロシージャ

このプロシージャでは、オブジェクト・ストアの指定したオブジェクトを削除します。

構文

DBMS_CLOUD.DELETE_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       force                IN BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

object_uri

削除するオブジェクトのオブジェクトまたはファイルURI。 URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

force

オブジェクトが存在しない場合、エラーを無視して報告しません。 有効な値はTRUEおよびFALSEです。 デフォルト値はFALSEです。

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;
/ 
46.3.2.13 DELETE_OPERATIONプロシージャ

このプロシージャは、スキーマのuser_load_operationsまたはdba_load_operations表に記録された、指定された操作IDのデータ・ロード・エントリをクリアします。

構文

DBMS_CLOUD.DELETE_OPERATION (
	id      IN NUMBER);

パラメータ

パラメータ 説明

id

削除するログ・ファイル・エントリに関連付けられた操作IDを指定します。

SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);
46.3.2.14 EXPORT_DATAプロシージャ
このプロシージャは、問合せの結果に基づいてOracle Databaseからデータをエクスポートします。 このプロシージャはオーバーロードされており、クラウドまたはディレクトリへのファイルの書込みをサポートしています。

このプロシージャは、format typeパラメータに基づいて、CSV、JSONまたは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);

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

資格証明パラメータが含まれていない場合、ディレクトリへの出力を指定します。

file_uri_list

formatパラメータの値、および資格証明パラメータを含めるかどうかに応じて、様々な形式があります:
  • formatパラメータのtype値がjsonの場合: オブジェクト・ストア上のJSONまたは指定されたディレクトリのロケーションは、file_uri_listパラメータの値に基づいて生成されたファイル名で保存されます。 詳細は、「テキスト出力のファイル・ネーミング(CSV、JSON、ParquetまたはXML)」を参照してください。

  • formatパラメータのtype値がdatapumpの場合、file_uri_listはダンプ・ファイルのカンマ区切りリストです。 オブジェクト・ストアに作成するファイルを指定します。 file_uri_listでは、ワイルドカードおよび置換文字の使用はサポートされていません。

  • credential_nameパラメータを指定しない場合は、file_uri_listにディレクトリ名を指定します。

URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

format

エクスポート形式オプションを提供するJSON文字列。

サポートされるオプションは次のとおりです。

  • type: type formatオプションは必須であり、いずれかの値が必要です: csv | datapump | json | xml.

query

このパラメータを使用して、必要なデータのみがエクスポートされるようにSELECT文を指定します。 問合せによって、テキスト・ファイルCSV、JSONまたはXMLとしてエクスポートするファイルの内容、またはダンプ・ファイルとしてエクスポートするファイルの内容が決まります。 たとえば:

SELECT warehouse_id, quantity FROM inventories

format type値がjsonの場合、各問合せ結果がチェックされ、JSONでない場合はファンクションで決定されます: JSON_OBJECT_T.parse()DBMS_CLOUD.EXPORT_DATAは、JSON_OBJECTファンクションを含むように問合せを変換して、行をJSONに変換します。

たとえば:

SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories)

operation_id

このパラメータを使用して、USER_LOAD_OPERATIONSビューの対応するIDとしてエクスポート操作の進行状況および最終ステータスを追跡します。

使用上のノート:

  • 指定するqueryパラメータ値は、結合または副問合せを含む問合せなど、必要に応じて拡張問合せにできます。

  • 指定したフォーマット・パラメータに応じて、DBMS_CLOUD.EXPORT_DATAは、指定した問合せの結果をクラウド・オブジェクト・ストアまたはディレクトリのロケーションに次のいずれかの形式で出力します:

  • CSV、JSONまたはXML出力の場合、生成されたファイルに10MBのデータが含まれていると、新しい出力ファイルが作成されます。 ただし、結果データが10MB未満の場合は、データベース・サービスおよびAutonomous DatabaseインスタンスのECPU (OCPUを使用している場合のOCPU)の数に応じて、複数の出力ファイルが存在する場合があります。

    詳細は、「テキスト出力のファイル・ネーミング(CSV、JSON、ParquetまたはXML)」を参照してください。

    デフォルトの出力ファイルのチャンク・サイズは、CSV、JSONまたはXMLの場合は10MBです。 この値は、formatパラメータのmaxfilesizeオプションを使用して変更できます。 詳細は、「EXPORT_DATAのDBMS_CLOUDパッケージ形式オプション」を参照してください。

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を使用したOracle Databaseエクスポートでは、Oracle Cloud Infrastructure Object StorageOracle Cloud Infrastructure Object Storage Classicオブジェクト・ストアまたはディレクトリ出力のみがサポートされます。

  • Oracle Data Pumpでは、各ダンプ・ファイルの部分を小さなチャンクに分割してアップロードを高速化します。 Oracle Cloud Infrastructure Object Storageコンソールには、エクスポートするダンプ・ファイル部分ごとに複数のファイルが表示されます。 実際のダンプファイルのサイズはゼロ(0)、関連するファイル・チャンクは10mb以下と表示されます。 たとえば:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    Oracle Cloud InfrastructureコンソールまたはOracle Cloud Infrastructure CLIを使用してゼロ・バイト・ダンプ・ファイルをダウンロードしても、完全なダンプ・ファイルは得られません。 オブジェクト・ストアから完全なダンプ・ファイルをダウンロードするには、curlなどのSwiftをサポートするツールを使用して、ユーザー・ログインおよびSwift認証トークンを指定します。
    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パラメータで指定するファイル名の数によって異なります。

  • DBMS_CLOUD.EXPORT_DATAで作成したダンプ・ファイルは、Oracle Data Pump impdpを使用してインポートできません。 データベースに応じて、これらのファイルを次のように使用できます:

    • Oracle Databaseインスタンスでは、値' datapump 'を持つformatパラメータtypeをサポートするDBMS_CLOUDプロシージャでダンプ・ファイルを使用できます。 DBMS_CLOUD.COPY_DATAを使用してダンプ・ファイルをインポートすることも、DBMS_CLOUD.CREATE_EXTERNAL_TABLEをコールして外部表を作成することもできます。

    • 他のOracle Databaseでは、ORACLE_DATAPUMPアクセス・ドライバを使用して、プロシージャDBMS_CLOUD.EXPORT_DATAで作成されたダンプ・ファイルをインポートできます。

  • 指定する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

次の例は、値がdatapumptypeパラメータ形式の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はバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

次の例は、値がjsontypeパラメータ形式の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;
/  

次の例は、値がxmltypeパラメータ形式の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;
/

次の例は、値がcsvtypeパラメータ形式の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;
/  

次の例は、値がdatapumptypeパラメータを使用して、ディレクトリのロケーションにデータをエクスポートする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;
/
46.3.2.15 GET_OBJECTプロシージャ/ファンクション

このプロシージャはオーバーロードされています。 プロシージャ形式では、Cloud Object Storageからオブジェクトを読み取り、そのオブジェクトをOracle Databaseにコピーします。 ファンクション形式では、Cloud Object Storageからオブジェクトを読み取り、BLOBOracle Databaseに返します。

構文

DBMS_CLOUD.GET_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2 DEFAULT  NULL,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.GET_OBJECT(
       credential_name      IN VARCHAR2 DEFAULT NULL,
       object_uri           IN VARCHAR2,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL)
RETURN BLOB;

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

object_uri

オブジェクトまたはファイルURI。 URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

directory_name

データベースにあるディレクトリの名前。

脚注 1
次のように、事前認証済リクエスト(PAR) URLを使用して外部表を作成できます:
  • 単一のOracle Database事前認証済リクエスト(PAR) URLを指定し、データにフィルタおよび句を適用します。 たとえば、WHERE句を使用してデータをフィルタしたり、ORDER BY句を使用してデータをソートできます。

  • Oracle Database事前認証済リクエスト(PAR) URLのカンマ区切りリストを指定します。含まれるすべてのPAR URLの列名、列の順序および列のデータ型が同じスキーマにあることを確認する必要があります。

file_name

作成するファイルの名前を指定します。 ファイル名の指定がない場合、ファイル名はobject_uriパラメータの最後のスラッシュの後から取得されます。 ファイル名にスラッシュが含まれている場合などの特殊なケースに、file_nameパラメータを使用します。

startoffset

プロシージャが読取りを開始する場所のオフセット(バイト単位)。

endoffset

プロシージャが読取りを終了する場所のオフセット(バイト単位)。

compression

オブジェクトの格納に使用する圧縮を指定します。 compression'AUTO'に設定されている場合、ファイルは圧縮解除されます(値'AUTO'は、object_uriで指定されたオブジェクトがGzipで圧縮されることを意味します)。

脚注1

ノート:

DBMS_CLOUD.GET_OBJECTを実行するには、ディレクトリに対するWRITE権限をそのユーザーに付与する必要があります。 たとえば、db_userに書込み権限を付与するには、権限のあるユーザーとして次のコマンドを実行します:

GRANT WRITE ON DIRECTORY data_pump_dir TO db_user;

戻り値

ファンクション形式では、オブジェクト・ストアから読み取り、DBMS_CLOUD.GET_OBJECTBLOBを戻します。

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はバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

46.3.2.16 LIST_FILESファンクション

このファンクションでは、指定されたディレクトリにあるファイルをリストします。 結果には、ファイル名とファイルに関する追加のメタデータ(バイト単位のファイル・サイズ、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。

構文

DBMS_CLOUD.LIST_FILES (
	directory_name      IN VARCHAR2)
       RETURN TABLE;

パラメータ

パラメータ 説明

directory_name

データベースにあるディレクトリの名前。

使用上のノート

  • DBMS_CLOUD.LIST_FILESは、Oracle File System (OFS)またはデータベース・ファイル・システム(DBFS)のファイル・システムへのディレクトリ・オブジェクト・マッピングでのみサポートされます。

  • DBMS_CLOUD.LIST_FILESを実行するには、そのユーザーにそのディレクトリに対する読取り権限を付与する必要があります。 たとえば、次のコマンドをADMINとして実行し、db_userに読取り権限を付与します。

    GRANT READ ON DIRECTORY data_pump_dir TO db_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

46.3.2.17 LIST_OBJECTSファンクション

このファンクションでは、オブジェクト・ストア内の指定された場所にあるオブジェクトをリストします。 結果には、オブジェクト名とオブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。

構文

DBMS_CLOUD.LIST_OBJECTS (
       credential_name      IN VARCHAR2,
       location_uri         IN VARCHAR2)
   RETURN TABLE;

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

location_uri

オブジェクトまたはファイルURI。 URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

使用上のノート

  • オブジェクト・ストアの機能によって、DBMS_CLOUD.LIST_OBJECTSが特定の属性の値を返さないことがあります。その場合、フィールドの戻り値はNULLになります。

    サポートされているすべてのオブジェクト・ストアは、OBJECT_NAMEBYTESおよびCHECKSUMフィールドの戻り値を返します。

    次の表に、オブジェクト・ストアごとのフィールドCREATEDおよびLAST_MODIFIEDのサポートを示します。

    オブジェクト・ストア CREATED LAST_MODIFIED
    Oracle Cloud Infrastructure Native タイムスタンプが戻されます タイムスタンプが戻されます
    Oracle Cloud Infrastructure Swift NULLが戻されます タイムスタンプが戻されます
    Oracle Cloud Infrastructure Classic NULLが戻されます タイムスタンプが戻されます
    Amazon S3 NULLが戻されます タイムスタンプが戻されます
    Azure タイムスタンプが戻されます タイムスタンプが戻されます
    GitHubリポジトリ    
  • チェックサム値は、MD5チェックサムです。 これは、オブジェクトの内容に対して計算される32文字の16進数です。

  • これは、戻り値のタイプが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はバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

46.3.2.18 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
);

パラメータ

パラメータ 説明

source_credential_name

ソース・クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。

source_credential_name値を指定しない場合、credential_nameNULLに設定されます。

source_object_uri

ソース・オブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_object_uri

ターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。このURIでは、ファイルを移動する必要があります。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_credential_name

ターゲットのクラウド・オブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。

target_credential_name値を指定しない場合、target_object_urisource_credential_name値に設定されます。

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;
/
46.3.2.19 PUT_OBJECTプロシージャ

このプロシージャはオーバーロードされています。 このプロシージャには、Oracle DatabaseからCloud Object Storageにファイルをコピーする形式があります。 また、このプロシージャには、Oracle DatabaseからCloud Object StorageにBLOBをコピーする形式もあります。

構文

DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       contents             IN BLOB
       compression          IN VARCHAR2 DEFAULT  NULL);

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

object_uri

オブジェクトまたはファイルURI。 URIの形式は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「DBMS_CLOUD URI形式」を参照してください。

directory_name

Oracle Databaseにあるディレクトリの名前。

脚注 2

contents

Oracle Databaseからクラウド・オブジェクト・ストレージにコピーするBLOBを指定します。

file_name

指定したディレクトリ内のファイルの名前。

compression

オブジェクトの格納に使用する圧縮を指定します。

デフォルト値: NULL

脚注2

ノート:

DBMS_CLOUD.PUT_OBJECTを実行するには、そのユーザーにそのディレクトリに対する読取り権限を付与する必要があります。 たとえば、db_userに読取り権限を付与するには、特権ユーザーとして次のコマンドを実行します:

GRANT READ ON DIRECTORY data_pump_dir TO db_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オブジェクト・ストレージ

50GB

Amazon S3

5GB

Azure Blob Storage

256MB

Oracle Cloud Infrastructureオブジェクト・ストアでは、資格証明を指定していないとパブリック・バケットにファイルを書き込むことができません(Oracle Cloud Infrastructureでは、パブリック・バケットからユーザーがオブジェクトをダウンロードできます)。 そのため、PUT_OBJECTを使用してOracle Cloud Infrastructureパブリック・バケットにオブジェクトを格納するには、有効な資格証明が含まれている資格証明の名を指定する必要があります。

詳細は、「DBMS_CLOUD URI形式」を参照してください。

46.3.2.20 SYNC_EXTERNAL_PART_TABLEプロシージャ

このプロシージャは、クラウド内のファイルからの外部パーティション表の更新を簡略化します。 このプロシージャは、新しいパーティションが追加されたとき、または外部パーティション表のオブジェクト・ストア・ソースからパーティションが削除されたときに実行します。

構文

DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
	table_name        IN VARCHAR2,
	schema_name       IN VARCHAR2 DEFAULT,
	update_columns    IN BOOLEAN DEFAULT);

パラメータ

パラメータ 説明

table_name

ターゲット表の名前 DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLEを実行する前に、ターゲット表を作成する必要があります。

schema_name

ターゲット表が存在するスキーマの名前。 デフォルト値は、NULLです。この値は、ターゲット表がプロシージャを実行するユーザーと同じスキーマ内にあることを意味します。

update_columns

新しいファイルによってスキーマが変更される場合があります。 サポートされる更新内容: 新しい列、削除された列。 既存の列に対する更新(データ型の変更など)では、エラーがスローされます。

デフォルト値: False

46.3.2.21 VALIDATE_EXTERNAL_PART_TABLEプロシージャ

このプロシージャでは、パーティション化された外部表のソース・ファイルを検証して、ログ情報を生成し、外部表に指定したフォーマット・オプションと一致しない行をOracle Databasebadfile表に格納します。 オーバーロードされた形式では、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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

partition_name

定義すると場合、特定のパーティションのみが検証されます。 指定がない場合は、rowcountに達するまで、すべてのパーティションを順次読み取ります。

subpartition_name

定義した場合、特定のサブパーティションのみが検証されます。 指定しない場合は、rowcountに達するまで、すべての外部パーティションまたはサブパーティションから順次読み取ります。

schema_name

外部表が存在するスキーマの名前。 デフォルト値は、NULLです。この値は、外部表がプロシージャを実行するユーザーと同じスキーマ内にあることを意味します。

rowcount

スキャンされる行数 デフォルト値は、NULLです。ソース・ファイルのすべての行がスキャンされることを意味します。

partition_key_validation

内部使用のみに対応しています。 このパラメータは使用しないでください。

stop_on_error

行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は、TRUEです。この値は、検証が最初に拒否された行で停止することを意味します。 この値をFALSEに設定すると、検証が最初に拒否された行で停止せずに、rowcountパラメータで指定された値までのすべての行が検証されます。

46.3.2.22 VALIDATE_EXTERNAL_TABLEプロシージャ

このプロシージャでは、外部表のソース・ファイルを検証して、ログ情報を生成し、外部表に指定したフォーマット・オプションと一致しない行をOracle Databasebadfile表に格納します。 オーバーロードされた形式では、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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

schema_name

外部表が存在するスキーマの名前。 デフォルト値は、NULLです。この値は、外部表がプロシージャを実行するユーザーと同じスキーマ内にあることを意味します。

rowcount

スキャンされる行数 デフォルト値は、NULLです。ソース・ファイルのすべての行がスキャンされることを意味します。

stop_on_error

行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は、TRUEです。この値は、検証が最初に拒否された行で停止することを意味します。 この値をFALSEに設定すると、検証が最初に拒否された行で停止せずに、rowcountパラメータで指定された値までのすべての行が検証されます。

外部表がAvroまたはParquetファイルを参照している場合は、最初に拒否された行で検証が停止します。

外部表でformatパラメータのtypeが値avroまたはparquetに設定されている場合、実質的にパラメータstop_on_errorの値は常にTRUEになります。 そのため、AvroまたはParquetファイルを参照する外部表については、表badfileが常に空の状態になります。

使用上のノート

  • DBMS_CLOUD.VALIDATE_EXTERNAL_TABLEは、パーティション化された外部表とハイブリッド・パーティション表の両方に機能します。 これは、rowcountに達するか、stop_on_errorが適用されるまで、すべての外部パーティションからデータを読み取る可能性があります。 読み取るパーティションまたはパーティションの部分の順序は制御できません。

46.3.2.23 VALIDATE_HYBRID_PART_TABLEプロシージャ

このプロシージャでは、ハイブリッド・パーション表のソース・ファイルを検証して、ログ情報を生成し、ハイブリッド表に指定したフォーマット・オプションと一致しない行をOracle Databasebadfile表に格納します。 オーバーロードされた形式では、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);

パラメータ

パラメータ 説明

table_name

外部表の名前。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

partition_name

定義すると場合、特定のパーティションのみが検証されます。 指定がない場合は、rowcountに達するまで、すべての外部パーティションから順次読み取ります。

subpartition_name

定義した場合、特定のサブパーティションのみが検証されます。 指定しない場合は、rowcountに達するまで、すべての外部パーティションまたはサブパーティションから順次読み取ります。

schema_name

外部表が存在するスキーマの名前。 デフォルト値は、NULLです。この値は、外部表がプロシージャを実行するユーザーと同じスキーマ内にあることを意味します。

rowcount

スキャンされる行数 デフォルト値は、NULLです。ソース・ファイルのすべての行がスキャンされることを意味します。

partition_key_validation

内部使用のみに対応しています。 このパラメータは使用しないでください。

stop_on_error

行が拒否されたときに検証を停止するかどうかを決定します。 デフォルト値は、TRUEです。この値は、検証が最初に拒否された行で停止することを意味します。 この値をFALSEに設定すると、検証が最初に拒否された行で停止せずに、rowcountパラメータで指定された値までのすべての行が検証されます。

46.3.3 DBMS_CLOUD:一括ファイル管理

DBMS_CLOUDパッケージ内のバルク・ファイル操作のサブプログラム。

サブプログラム 説明
BULK_COPYプロシージャ

このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のクラウド・オブジェクト・ストレージ・バケットにファイルをコピーします。

BULK_DELETEプロシージャ

このプロシージャは、クラウド・オブジェクト・ストレージ・バケットまたはフォルダからファイルを削除します。

BULK_DOWNLOADプロシージャ

このプロシージャは、クラウド・オブジェクト・ストア・バケットからAutonomous Databaseのディレクトリにファイルをダウンロードします。

BULK_MOVEプロシージャ

このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のクラウド・オブジェクト・ストレージ・バケットにファイルを移動します。

BULK_UPLOADプロシージャ

このプロシージャは、Autonomous Databaseのディレクトリからクラウド・オブジェクト・ストレージにファイルをアップロードします。

46.3.3.1 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
);

パラメータ

パラメータ 説明

source_credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

source_credential_name値を指定しない場合、credential_nameNULLに設定されます。

source_location_uri

ソース・オブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_location_uri

ファイルをコピーする必要があるターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_credential_name

ターゲットのクラウド・オブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。

target_credential_name値を指定しない場合、target_location_urisource_credential_name値に設定されます。

regex_filter

ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、REGEXP_LIKE演算子と互換性がある必要があります。

regex_filter値を指定しない場合、regex_filterNULLに設定されます。

format

ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。

サポートされているフォーマット・オプションは次のとおりです:
  • logretention: バルク操作のためにステータス表が保持される期間(日数)を決定する整数値を受け入れます。

    デフォルト値は2 daysです。

  • logprefix: バルク操作ステータス表名のプレフィクス文字列を決定する文字列値を受け入れます。

    操作タイプがデフォルト値です。 BULK_COPYの場合、デフォルトのlogprefix値はCOPYOBJです。

format値を指定しない場合、formatNULLに設定されます。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

使用上のノート

  • ソースとターゲットの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;
/
46.3.3.2 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
);

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

credential_name値を指定しない場合、credential_nameNULLに設定されます。

location_uri

Autonomous Databaseのオブジェクト・ストレージのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

regex_filter

ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、REGEXP_LIKE演算子と互換性がある必要があります。

regex_filter値を指定しない場合、regex_filterNULLに設定されます。

format

ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。

サポートされているフォーマット・オプションは次のとおりです:
  • logretention: バルク操作でステータス表が保持される期間(日数)を決定する整数値を受け入れます。

    デフォルト値は2 daysです。

  • logprefix: バルク操作ステータス表名のプレフィクス文字列を決定する文字列値を受け入れます。

    操作タイプがデフォルト値です。 BULK_DELETEの場合、デフォルトのlogprefix値はDELETEです。

format値を指定しない場合、formatNULLに設定されます。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

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;
/
46.3.3.3 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
);

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

credential_name値を指定しない場合、credential_nameNULLに設定されます。

location_uri

Autonomous Databaseのオブジェクト・ストレージのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

directory_name

ファイルのダウンロード元となるAutonomous Database上のディレクトリの名前。

このパラメータは必須です。

regex_filter

ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、REGEXP_LIKE演算子と互換性がある必要があります。

regex_filter値を指定しない場合、regex_filterNULLに設定されます。

format

ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。

サポートされているフォーマット・オプションは次のとおりです:
  • logretention: バルク操作のためにステータス表が保持される期間(日数)を決定する整数値を受け入れます。

    デフォルト値は2 daysです。

  • logprefix: バルク操作ステータス表名のプレフィクス文字列を決定する文字列値を受け入れます。 BULK_DOWNLOADの場合、デフォルトのlogprefix値はDOWNLOADです。

    操作タイプがデフォルト値です。

format値を指定しない場合、formatNULLに設定されます。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

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;
/
46.3.3.4 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
);

パラメータ

パラメータ 説明

source_credential_name

ソース・クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。

source_credential_name値を指定しない場合、credential_nameNULLに設定されます。

source_location_uri

ソース・オブジェクト・ストレージ・バケットまたはフォルダのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_location_uri

ターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。このURIでは、ファイルを移動する必要があります。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

target_credential_name

ターゲットのクラウド・オブジェクト・ストレージのロケーションにアクセスするための資格証明の名前。

target_credential_name値を指定しない場合、target_location_urisource_credential_name値に設定されます。

regex_filter

ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、REGEXP_LIKE演算子と互換性がある必要があります。

regex_filter値を指定しない場合、regex_filterNULLに設定されます。

format

ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。

サポートされているフォーマット・オプションは次のとおりです:
  • logretention: バルク操作のためにステータス表が保持される期間(日数)を決定する整数値を受け入れます。

    デフォルト値は2 daysです。

  • logprefix: バルク操作ステータス表名のプレフィクス文字列を決定する文字列値を受け入れます。

    操作タイプがデフォルト値です。 BULK_MOVEの場合、デフォルトのlogprefix値はMOVEです。

format値を指定しない場合、formatNULLに設定されます。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

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が同じオブジェクト・ストレージ・バケットまたはフォルダを指している場合、エラーが返されます。
46.3.3.5 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
);

パラメータ

パラメータ 説明

credential_name

Cloud Object Storageにアクセスするための資格証明の名前。

credential_name値を指定しない場合、credential_nameNULLに設定されます。

location_uri

ファイルをアップロードするオブジェクト・ストレージのロケーションを指すURIを指定します。

このパラメータは必須です。

URIの形式は、Cloud Object Storageサービスによって異なります。 詳細は、「DBMS_CLOUD URI形式」を参照してください。

directory_name

ファイルのアップロード元となるAutonomous Database上のディレクトリの名前。

このパラメータは必須です。

regex_filter

ファイルをフィルタするREGEX式を指定します。 REGEX式パターンは、REGEXP_LIKE演算子と互換性がある必要があります。

regex_filter値を指定しない場合、regex_filterNULLに設定されます。

format

ファイル操作の追加の構成オプションを指定します。 これらのオプションはJSON文字列として指定されます。

サポートされているフォーマット・オプションは次のとおりです:
  • logretention: バルク操作のためにステータス表が保持される期間(日数)を決定する整数値を受け入れます。

    デフォルト値は2 daysです。

  • logprefix: バルク操作ステータス表名のプレフィクス文字列を決定する文字列値を受け入れます。

    操作タイプがデフォルト値です。 BULK_UPLOADの場合、デフォルトのlogprefix値はUPLOADです。

format値を指定しない場合、formatNULLに設定されます。

operation_id

このパラメータは、ロード操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡するために使用します。

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;
/

46.3.4 DBMS_CLOUD REST APIs

この項では、Autonomous Databaseで提供されるDBMS_CLOUD REST APIについて説明します。

REST API 説明

GET_RESPONSE_HEADERSファンクション

このファンクションは、Oracle DatabaseのJSONオブジェクトでHTTPレスポンス・ヘッダーをJSONデータとして返します。

GET_RESPONSE_RAWファンクション

このファンクションは、HTTPレスポンスをRAW形式Oracle Databaseで返します。 これは、HTTPレスポンスがバイナリ形式であることが予想される場合に役立ちます。

GET_RESPONSE_STATUS_CODEファンクション

このファンクションは、HTTPレスポンス・ステータス・コードをOracle Databaseの整数として返します。 ステータス・コードは、リクエストが成功したかどうかを識別するのに役立ちます。

GET_RESPONSE_TEXTファンクション

このファンクションは、HTTPレスポンスをOracle DatabaseのTEXT形式(VARCHAR2またはCLOB)で返します。 通常、ほとんどのクラウドREST APIはJSONレスポンスをテキスト形式で返します。 このファンクションは、HTTPレスポンスがテキスト形式であることが予想される場合に役立ちます。

GET_API_RESULT_CACHE_SIZEファンクション

このファンクションは、構成された結果キャッシュ・サイズを返します。

SEND_REQUESTファンクションおよびプロシージャ

このファンクションは、HTTPリクエストを開始し、レスポンスを取得し、Oracle Databaseでレスポンスを終了します。 このファンクションは、引数、リターン・レスポンス・コードおよびペイロードを含むクラウドREST APIリクエストを送信するためのワークフローを提供します。

SET_API_RESULT_CACHE_SIZEプロシージャ

このプロシージャは、現在のセッションの最大キャッシュ・サイズを設定します。

46.3.4.1 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を提供

46.3.4.2 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'
46.3.4.3 DBMS_CLOUD REST API結果キャッシュ

DBMS_CLOUD.SEND_REQUESTcacheパラメータを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キャッシュ・サイズを表示および設定し、キャッシュを無効にします。

46.3.4.4 GET_RESPONSE_HEADERSファンクション

このファンクションは、HTTPレスポンス・ヘッダーをJSONオブジェクト内のJSONデータとして返します。

構文

DBMS_CLOUD.GET_RESPONSE_HEADERS(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN JSON_OBJECT_T;

パラメータ

パラメータ 説明
resp

DBMS_CLOUD.SEND_REQUESTから返されたHTTPレスポンス・タイプ。

例外

例外 エラー 説明
invalid_response ORA-20025

無効なレスポンス・タイプ・オブジェクトがDBMS_CLOUD.GET_RESPONSE_HEADERSに渡されました。

46.3.4.5 GET_RESPONSE_RAWファンクション

このファンクションは、HTTPレスポンスをRAW形式で返します。 これは、HTTPレスポンスがバイナリ形式であることが予想される場合に役立ちます。

構文

DBMS_CLOUD.GET_RESPONSE_RAW(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN BLOB;

パラメータ

パラメータ 説明
resp

DBMS_CLOUD.SEND_REQUESTから返されたHTTPレスポンス・タイプ。

例外

例外 エラー 説明
invalid_response ORA-20025

無効なレスポンス・タイプ・オブジェクトがDBMS_CLOUD.GET_RESPONSE_RAWに渡されました。

46.3.4.6 GET_RESPONSE_STATUS_CODEファンクション

このファンクションは、HTTPレスポンス・ステータス・コードを整数として返します。 ステータス・コードは、リクエストが成功したかどうかを識別するのに役立ちます。

構文

DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN PLS_INTEGER;

パラメータ

パラメータ 説明
resp

DBMS_CLOUD.SEND_REQUESTから返されたHTTPレスポンス・タイプ。

例外

例外 エラー 説明
invalid_response ORA-20025

無効なレスポンス・タイプ・オブジェクトがDBMS_CLOUD.GET_RESPONSE_STATUS_CODEに渡されました。

46.3.4.7 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

DBMS_CLOUD.SEND_REQUESTから返されたHTTPレスポンス・タイプ。

例外

例外 エラー 説明
invalid_response ORA-20025

無効なレスポンス・タイプ・オブジェクトがDBMS_CLOUD.GET_RESPONSE_TEXTに渡されました。

46.3.4.8 GET_API_RESULT_CACHE_SIZEファンクション

このファンクションは、構成された結果キャッシュ・サイズを返します。 キャッシュ・サイズの値は、現在のセッションにのみ適用されます。

構文

DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE()
   RETURN NUMBER;
46.3.4.9 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);

パラメータ

パラメータ 説明

credential_name

対応するクラウド・ネイティブAPIで認証するための資格証明の名前。

uri

リクエストを行うHTTP URI。

method

HTTPリクエスト・メソッド: GET, PUT, POST, HEAD, DELETE. DBMS_CLOUDパッケージ定数を使用して、メソッドを指定します。

詳細は、「DBMS_CLOUD REST APIの定数」を参照してください。

headers

対応するクラウド・ネイティブAPIのHTTPリクエスト・ヘッダー(JSON形式)。 認証ヘッダーは自動的に設定され、カスタム・ヘッダーのみが渡されます。

async_request_url

非同期リクエストURL。

URLを取得するには、APIのリストからリクエストAPIを選択します(https://docs.cloud.oracle.com/en-us/iaas/api/を参照)。 次に、左側のペインでリクエストのAPIを検索します。 たとえば、「データベース・サービスAPI」→「Autonomous Database」→「StopAutonomousDatabase」です。 このページには、APIホームが表示されます(およびベース・エンドポイントが表示されます)。 次に、作業リクエストWorkRequestリンクに対して取得された相対パスにベース・エンドポイントを追加します。

wait_for_states

待機状態はタイプのステータスです: DBMS_CLOUD_TYPES.wait_for_states_t. 次に、予想される状態の有効な値を示します: ' ACTIVE ', ' CANCELED ', ' COMPLETED ', ' DELETED ', ' FAILED ', ' SUCCEEDED '.

wait_for_statesには複数の状態を使用できます。 wait_for_statesのデフォルト値は、予想される状態のいずれかを待機: ' ACTIVE ', ' CANCELED ', ' COMPLETED ', ' DELETED ', ' FAILED ', ' SUCCEEDED '.

timeout

パラメータasync_request_urlおよびwait_for_statesを使用した非同期リクエストのタイムアウトを秒単位で指定します。

デフォルト値は0です。 これは、タイムアウトなしでリクエストが完了するまで待機することを示します。

cache

TRUEを指定すると、リクエストはREST結果APIキャッシュにキャッシュされます。

デフォルト値はFALSEです。これは、REST APIリクエストがキャッシュされないことを意味します。

cache_scope

すべてのユーザーがこのリクエスト結果キャッシュにアクセスできるかどうかを指定します。 有効な値: "PRIVATE"および"PUBLIC" デフォルト値は"PRIVATE"です。

body

PUTおよびPOSTリクエストのHTTPリクエスト本文。

例外

例外 エラー 説明
invalid_req_method ORA-20023

DBMS_CLOUD.SEND_REQUESTに渡されたリクエスト・メソッドが無効です。

invalid_req_header ORA-20024

DBMS_CLOUD.SEND_REQUESTに渡されたリクエスト・ヘッダーが有効なJSON形式ではありません。

使用上のノート

  • Oracle Cloud Infrastructureを使用している場合は、credential_nameに署名キー・ベースの資格証明値を使用する必要があります。 詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  • オプションのパラメータasync_request_urlwait_for_statesおよびtimeoutを使用すると、長時間実行リクエストを処理できます。 この非同期形式のsend_requestを使用して、ファンクションはwait_for_statesで指定された完了ステータスを待機してから戻ります。 送信リクエストでこれらのパラメータを使用して、wait_for_statesパラメータで予想される戻り状態を渡し、async_request_urlパラメータを使用して関連する作業リクエストを指定すると、リクエストはすぐには返されません。 かわりに、リクエストは、戻り状態が予想される状態の1つになるか、timeoutを超える(timeoutはオプション)までasync_request_urlをプローブします。 timeoutが指定されていない場合、リクエストはwait_for_statesで検出された状態が発生するまで待機します。

46.3.4.10 SET_API_RESULT_CACHE_SIZEプロシージャ

このプロシージャは、現在のセッションの最大キャッシュ・サイズを設定します。 キャッシュ・サイズの値は、現在のセッションにのみ適用されます。

構文

DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(
       cache_size          IN NUMBER);

パラメータ

パラメータ 説明
cache_size

最大キャッシュ・サイズを指定された値cache_sizeに設定します。 新しい最大キャッシュ・サイズが現在のキャッシュ・サイズより小さい場合、行数が指定された最大キャッシュ・サイズと等しくなるまで、古いレコードは削除されます。 最大値は10000です。

キャッシュ・サイズが0に設定されている場合は、セッションでキャッシュが無効になります。

デフォルトのキャッシュ・サイズは10です。

例外

例外 エラー 説明
invalid API result cache size ORA-20032

最小値は0で、最大値は10000です。 この例外は、入力値が0より小さいか、または10000より大きい場合に表示されます。

EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(101);
46.3.4.11 DBMS_CLOUD REST APIの例

DBMS_CLOUD.SEND_REQUESTを使用してOracle Cloud Infrastructureオブジェクト・ストレージ・バケットを作成および削除する例と、テナンシ内のすべてのコンパートメントをリストする例を示しています。

ノート:

これらの例は、Oracle Cloud InfrastructureリクエストAPIを示し、credential_nameの署名キー・ベースの資格証明を使用する必要があります。 Oracle Cloud Infrastructure署名キー・ベースの資格証明には、private_keyおよびfingerprint引数が含まれます。

たとえば:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
DBMS_CLOUD.CREATE_CREDENTIALの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

バケットの作成の例

DBMS_CLOUD.SEND_REQUESTをHTTP POSTメソッドとともに使用して、bucketnameという名前のオブジェクト・ストア・バケットを作成する例を示します。

この例のOracle Cloud Infrastructure Object Storage Service APIの詳細は、CreateBucketを参照してください。

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
            method => DBMS_CLOUD.METHOD_POST,
            body => UTL_RAW.cast_to_raw(
                        JSON_OBJECT('name' value 'bucketname',
                                    'compartmentId' value 'compartment_OCID'))
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

ノート:

バケットの削除の例

DBMS_CLOUD.SEND_REQUESTをHTTP DELETEメソッドとともに使用して、bucketnameという名前のオブジェクト・ストア・バケットを削除する例を示します。

この例の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;
/

ノート:

コンパートメントのリストの例

DBMS_CLOUD.SEND_REQUESTをHTTP GETメソッドとともに使用して、テナンシ(ルート・コンパートメント)内のすべてのコンパートメントをリストする例を示します。 この例では、DBMS_CLOUD.SEND_REQUESTでリクエスト・ヘッダーを渡す方法を示します。

この例のOracle Cloud Infrastructure Identity and Access Management Service APIの詳細は、ListCompartmentsを参照してください。

--
-- List compartments
--
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
  root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
  -- Send request
  dbms_output.put_line('Send Request');
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
            method => DBMS_CLOUD.METHOD_GET,
            headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
          );
  dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
  dbms_output.put_line(CHR(10));
END;
/

場所: regionはエンドポイント・リージョンです。 詳細は、「APIリファレンスとエンドポイント」のIdentity and Access Management (IAM) APIリファレンスを参照してください。 たとえば、regionは: uk-london-1.

非同期リクエストの例

DBMS_CLOUD.SEND_REQUESTをHTTP POSTメソッドとともに使用して、Autonomous Database停止操作を実行し、ステータスを待機する例を示します。 この例では、DBMS_CLOUD.SEND_REQUESTasync_request_urlwait_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リソース識別子です。 詳細は、「リソース識別子」を参照してください。

46.4 DBMS_CLOUD URI形式

DBMS_CLOUDの操作におけるソース・ファイルURIの形式について説明します。 この形式は、どのオブジェクト記憶域サービスを使用するかによって異なります。

DBMS_CLOUDでは、セキュアな通信が保証され、URIの指定にはHTTPS (URIの接頭辞がhttps://)を使用する必要があります。

46.4.1 Oracle Cloud Infrastructure Object Storage NativeのURI形式

ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename

ノート:

OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:

https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename

たとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtのネイティブURIは次のようになります:

https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txt

この例では、namespace-stringは、Oracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースです。また、bucketnameはバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

このURIは、オブジェクト・ストアの右側の省略記号メニューにあるOracle Cloud Infrastructure Object Storageの「オブジェクトの詳細」から確認できます。

  1. Oracle Cloudの横にあるナビゲーション・アイコンをクリックすることで、Oracle Cloud Infrastructureコンソールを開きます。
  2. Oracle Cloud Infrastructureの左側のナビゲーション・メニューから、「コア・インフラストラクチャ」をクリックします。 「オブジェクト・ストレージ」の下で、「オブジェクト・ストレージ」をクリックします。
  3. 「リスト範囲」の下で、「コンパートメント」を選択します。
  4. 「名前」列からバケットを選択します。
  5. 「オブジェクト」領域で、「オブジェクト詳細の表示」をクリックします。
  6. 「オブジェクトの詳細」ページの「URLパス(URI)」フィールドに、オブジェクトにアクセスするためのURIが表示されます。

ノート:

ソース・ファイルは、オブジェクト・ストレージ層バケットに格納されている必要があります。 Oracle Databaseでは、アーカイブ・ストレージ層のバケットはサポートされません。 詳細は、オブジェクト・ストレージの概要に関する項を参照してください。

46.4.2 Oracle Cloud Infrastructure Object Storage SwiftのURI形式

ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename

ノート:

OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:

https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename

たとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtのSwift URIは次のようになります:

https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt

この例では、namespace-stringは、Oracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースです。また、bucketnameはバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

ノート:

ソース・ファイルは、オブジェクト・ストレージ層バケットに格納されている必要があります。 Oracle Databaseでは、アーカイブ・ストレージ層のバケットはサポートされません。 詳細は、オブジェクト・ストレージの概要に関する項を参照してください。

46.4.3 Oracle Cloud Infrastructure Object Storage事前認証済リクエストURLを使用したURI形式

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在する場合は、Oracle Cloud Infrastructure事前認証済URIを使用できます。 事前認証済リクエストの作成時に、一意のURLが生成されます。 この一意のURLを組織内のユーザー、パートナーまたはサード・パーティに提供することで、事前認証済リクエストで識別されるオブジェクト・ストレージ・リソースのターゲットにアクセスできるようにします。

ノート:

事前認証済アクセスのビジネス要件とセキュリティへの影響は慎重に評価してください。 事前認証済リクエストURLの作成時には、有効期限アクセス・タイプをメモして、使用目的に適していることを確認します。

事前認証済リクエストURLは、リクエストがアクティブであるかぎり、そのURLを持つすべてのユーザーにリクエストで特定されるターゲットへのアクセス権を与えます。 事前認証済アクセスの運用ニーズについて考慮することに加えて、その配布について管理することも同様に重要です。

ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

ノート:

OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:

https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

たとえば、商用レルム(OC1)では、Phoenixデータ・センターの「バケット名」バケットにあるファイルchannels.txtの事前認証済URIのサンプルは次のとおりです:

https://namespace-string.objectstorage.us-phoenix-1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt

この例では、namespace-stringは、Oracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースです。また、bucketnameはバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

事前認証済URLは、資格証明を作成することなくOracle Cloud Infrastructureオブジェクト・ストア内のファイルにアクセスするURLを取得するために、どのDBMS_CLOUDプロシージャでも使用できます。 credential_nameパラメータをNULLとして指定するか、credential_nameパラメータの指定を省略する必要があります。

たとえば:

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/p/unique-pre-authenticated-string/n/namespace-string/b/bucketname/o/channels.txt',
     format => json_object('delimiter' value ',') );
END;
/

ノート:

URLの混在しているリストは有効です。 URLリストに事前認証済URLと認証が必要なURLの両方が含まれているときに、DBMS_CLOUDは、認証が必要なURLにアクセスする場合には指定されたcredential_nameを使用し、事前認証済URLについては指定されたcredential_nameを無視します。

詳細は、事前認証済リクエストの使用方法に関する項を参照してください。

46.4.4 パブリックURLを使用したURI形式

ソース・ファイルがパブリックURLを提供するオブジェクト・ストアに存在している場合は、DBMS_CLOUDプロシージャでパブリックURLを使用できます。 パブリックとは、オブジェクト・ストレージ・サービスが、オブジェクト・ストア・ファイルへの匿名の未認証アクセスをサポートすることを意味します。 サポートされているオブジェクト・ストアでオブジェクトをパブリックにする方法の詳細は、対象のCloud Object Storageサービスを参照してください。

ノート:

パブリックURLの使用に関して、ビジネス要件とセキュリティへの影響は慎重に評価してください。 パブリックURLの使用時にはファイル・コンテンツが認証されなくなるため、これが使用目的に適していることを確認してください。

パブリックURLは、資格証明を作成することなくオブジェクト・ストア内のファイルにアクセスするURLを取得するために、どのDBMS_CLOUDプロシージャでも使用できます。 credential_nameパラメータをNULLとして指定するか、credential_nameパラメータの指定を省略する必要があります。

次の例では、credential_nameの指定なしでDBMS_CLOUD.COPY_DATAを使用しています。

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/chan_v3.dat',
     format => json_object('delimiter' value ',') );
END;
/

この例では、namespace-stringは、Oracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースです。また、bucketnameはバケット名です。 詳細は、オブジェクト・ストレージ・ネームスペースの概要に関する項を参照してください。

ノート:

URLの混在しているリストは有効です。 URLリストにパブリックURLと認証が必要なURLの両方が含まれているときに、DBMS_CLOUDは、認証が必要なURLにアクセスする場合には指定されたcredential_nameを使用し、パブリックURLについては指定されたcredential_nameを無視します。

Oracle Cloud Infrastructureパブリック・バケットの使用方法の詳細は、パブリック・バケットに関する項を参照してください。

46.4.5 Oracle Cloud Infrastructure Object Storage ClassicのURI形式

ソース・ファイルがOracle Cloud Infrastructure Object Storage Classicにある場合は、ファイルにアクセスするためのURI形式の説明について、RESTのページ(Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLの概要に関する項)を参照してください。

46.4.6 Amazon S3のURI形式

ソース・ファイルがAmazon S3にある場合、ファイルにアクセスするためのURI形式の説明は、「バケットへのアクセス」 を参照してください。

次の例では、us-west-2地域のadbバケット内にあるファイルchannels.txtを参照します。

https://s3-us-west-2.amazonaws.com/adb/channels.txt 

資格証明を作成する必要なく、Amazon S3オブジェクト・ストア内のファイルにアクセスするために、URLを取得するどのDBMS_CLOUDプロシージャでも署名付きURLを使用できます。 DBMS_CLOUDプロシージャで署名付きURLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないようにします。

ノート:

DBMS_CLOUDでは、バケットにアクセスするための標準のAmazon S3エンドポイント構文がサポートされています。 DBMS_CLOUDでは、Amazon S3のレガシー・エンドポイントはサポートされていません。

46.4.7 Amazon S3互換URI形式

DBMS_CLOUDは、次のサービスを含む、Amazon S3互換URLをサポートするオブジェクト・ストレージ・サービスの実装をサポートします:

  • Amazon S3互換URLを持つOracle Cloud Infrastructure Object Storage
  • Amazon S3互換URLを持つGoogle Cloud Storage
  • Amazon S3互換URLを持つWasabi Hot Cloud Storage

ノート:

Amazon S3互換オブジェクト・ストアでDBMS_CLOUDを使用するには、有効な資格証明を指定する必要があります。 詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

ソース・ファイルがAmazon S3互換URIをサポートするサービス上に存在する場合は、次のURI形式を使用してファイルにアクセスします:

  • Oracle Cloud Infrastructure Object Storage S3互換URL

    ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、商用レルム(OC1)に次に示すオブジェクトURLおよびバケットURL形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

    ノート:

    OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

    オブジェクトURL形式

    • 商用レルム(OC1)でのみサポートされます:

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • すべてのゾーンでサポート:

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name

    バケットURLフォーマット:

    • 商用レルム(OC1)でのみサポートされます:

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • すべてのゾーンでサポート:

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name

    詳細は、「Amazon S3の互換性」およびObject Storage Service APIを参照してください。

  • Google Cloud Storage S3互換URL

    オブジェクトURL形式:

    https://bucketname.storage.googleapis.com/object_name

    バケットURL形式:

    https://bucketname.storage.googleapis.com/

    詳細は、「Amazon S3からCloud Storageへの移行」および「リクエスト・エンドポイント」を参照してください。

  • Wasabi S3互換URL

    オブジェクトURL形式:

    https://bucketname.s3.region.wasabisys.com/object_name

    バケットURL形式:

    https://bucketname.s3.region.wasabisys.com/

    詳細は、「Wasabi S3 APIリファレンス」および「Wasabiのストレージ・リージョンのサービスURL」を参照してください。

46.4.8 GitHub Raw URL形式

DBMS_CLOUDは、「GitHubリポジトリ」のデータにアクセスするためのGitHub Raw URLをサポートしています。

ノート:

GitHub Raw URLを使用したDBMS_CLOUDアクセスの場合、リポジトリ・アクセスは読取り専用機能に制限されます。 データを書き込むDBMS_CLOUD.PUT_OBJECTなどのDBMS_CLOUD APIは、「GitHubリポジトリ」DBMS_CLOUD APIではサポートされていません。

または、DBMS_CLOUD_REPO.PUT_FILEを使用して、「GitHubリポジトリ」にデータをアップロードします。

GitHub Raw URLをDBMS_CLOUD APIとともに使用して、「GitHubリポジトリ」に存在するソース・ファイルにアクセスします。 GitHubでファイルを参照し、Rawリンクをクリックすると、GitHub Raw URLが表示されます。 raw.githubusercontent.comドメインは、GitHubリポジトリに格納されているファイルの未処理バージョンを提供します。

たとえば、DBMS_CLOUD.GET_OBJECTを使用します:

BEGIN
 DBMS_CLOUD.GET_OBJECT(
   credential_name => 'MY_CRED',
   object_uri      => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/adb-loading.csv',
   directory_name  => 'DATA_PUMP_DIR'
  );
END;
/

たとえば、DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用します:

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    credential_name => 'MY_CRED',
    table_name      => 'EMPLOYEES_EXT',
    file_uri_list   => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/*.csv',
    column_list     => 'name varchar2(30), gender varchar2(30), salary number',
    format          => JSON_OBJECT('type' value 'csv')
  );
END;
/
SELECT * FROM employees_ext;

URLを使用して「GitHubリポジトリ」にアクセスするDBMS_CLOUDプロシージャでは、パブリック可視性のGitHubリポジトリを持つ資格証明は必要ありません。 パブリック可視性URLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しません。 詳細は、「リポジトリの表示設定」を参照してください。

46.4.9 顧客管理の追加のURI形式

DBMS_CLOUDは、完全修飾ドメイン名(FQDNs)を持つ事前構成済で認識されたURIsに加えて、顧客管理エンドポイントURIsの適切な認証スキームを決定できません。 このような場合、DBMS_CLOUDは、適切なURIスキームに依存して、顧客管理エンドポイントの認証スキームを識別します。
URIスキーム 認証タイプ アクセス・メソッド摘要 URIの例
basic:// 基本認証 データベース資格証明オブジェクトに格納されているユーザー名とパスワードは、HTTPリクエストの認証に使用されます basic://api.github.com/users/myaccount
bearer:// Bearerトークン認証 データベース資格証明オブジェクトのパスワード・フィールドに格納されたBearerトークンは、HTTPリクエストの認可ヘッダーを指定するために使用されます bearer://api.sendgrid.com/v3/resource
oci:// OCIネイティブ OCI認証プロトコルを使用したリクエストの署名に使用され、格納されたデータベース資格証明オブジェクトから取得されたOCI署名キー oci://objectstorage.us-ashburn-1.oraclecloud.com
public:// 認証なし パブリックURL public://cms.data.gov/
s3:// Amazon Web Services S3-compatible データベース資格証明オブジェクトのユーザー名/パスワード・フィールドから取得されたアクセス・キーと秘密キー、およびHTTPリクエストに対して実行されたS3互換認証。 s3://bucket.myprivatesite.com/file1.csv

例:

S3互換認証を使用する顧客管理エンドポイント。

この例では、新しいURIsについて、顧客はDBMS_NETWORK_ACL_ADMINパッケージを使用してパブリックまたはプライベートのホスト名パターンを追加する方法を示します。 コード・ブロックは、ユーザーADMINによって実行され、ユーザーSCOTTHTTPSアクセスをドメイン*.myprivatesite.comのエンドポイントに有効化します。 次に、ユーザーSCOTTが新しく有効化されたエンドポイントにどのようにアクセスするかを示します。 ユーザーSCOTTの資格証明MY_CREDには、URIプレフィクスで示されるHTTPリクエストに対して実行されるS3互換認証のアクセス・キーおよび秘密キーを格納する必要があります。


BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => '*.myprivatesite.com',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db),
         private_target => TRUE   );
END;
/

BEGIN
   DBMS_CLOUD.get_object(
       credential_name => 'MY_CRED',
       object_uri      => 's3://bucket.myprivatesite.com/file1.csv',
       directory_name  => 'MY_DIR'  );
END;
/

パブリック・アクセスを持つ顧客管理エンドポイント

この例では、SCOTTユーザーを登録してパブリックREST APIにアクセスする方法を示します。 ADMINユーザーは、SCOTTユーザーへのアクセスを提供するホストのネットワークACLを作成します。


BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'data.cms.gov',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db)
   );
END;
/

SELECT DBMS_CLOUD.get_response_text(
          DBMS_CLOUD.send_request(
              uri     => 'public://data.cms.gov/provider-data/api/1/datastore/imports/a',
              method  => DBMS_CLOUD.METHOD_GET,
              headers => JSON_OBJECT('Accept' VALUE 'application/json')
          )
       )
   FROM DUAL;
/

46.5 DBMS_CLOUDパッケージのフォーマット・オプション

DBMS_CLOUDのformat引数では、ソース・ファイルのフォーマットを指定します。

format引数は、次の2つの方法で指定します。

format => '{"format_option" : “format_value” }'  

および

format => json_object('format_option' value 'format_value'))

次に例を示します。

format => json_object('type' VALUE 'CSV')

複数のフォーマット・オプションを指定するには、値を,で区切ります。

たとえば:

format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 
                           'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true', 'logretention' value 7)

ノート:

AvroまたはParquetのフォーマット・オプションについては、「AvroまたはParquetに対応するDBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。
フォーマット・オプション 説明 構文

access_protocol

AWSやOCIオブジェクト・ストレージなどの「Apache Iceberg」表のタイプと、データ・カタログや直接メタデータURIからの情報など、外部表の作成に使用される情報を指定します。

access_protocol構文の詳細は、「Apache IcebergのCREATE_EXTERNAL_TABLEプロシージャ」を参照してください。

blankasnull

trueに設定すると、空白で構成されるフィールドがNULLとしてロードされます。

blankasnull : true

デフォルト値: False

characterset

format JSONおよびCOPY_DATAで有効

ソース・ファイルの文字セットを指定します

characterset: string

デフォルト値: データベースの文字セット

columnpath

format JSONおよびCOPY_DATAでのみ使用

JSONレコードから抽出する必要があるフィールドに対応するJSONパス式の配列。 配列内の各JSONパス式は、「SQL/JSONパス式」で説明されているルールに従う必要があります。

JSON形式およびDBMS_CLOUD.COPY_DATAでのみ使用します。

文字列形式で表されたJSONパス式のJSON配列。 例: 'columnpath' value '["$.WEATHER_STATION_ID", "$.WEATHER_STATION_NAME"]'

compression

ソース・ファイルの圧縮タイプを指定します

Zipアーカイブ形式はサポートされていません。

この値にautoを指定すると、圧縮タイプのgzip、zlib、bzip2がチェックされます。

compression: auto|gzip|zlib|zstd|bzip2

デフォルト値: 圧縮しないことを意味するNULL値。

conversionerrors

データ型の変換エラーで行が拒否されたときに、関連する列をNULLとして格納するか、その行を拒否します。

conversionerrors : reject_record | store_null

デフォルト値: reject_record

dateformat

ソース・ファイル内の日付書式を指定します。 フォーマット・オプションAUTOでは、次の書式が検索されます。

J 
MM-DD-YYYYBC 
MM-DD-YYYY 
YYYYMMDD HHMISS 
YYMMDD HHMISS 
YYYY.DDD 
YYYY-MM-DD

dateformat : 文字列

デフォルト値: データベースの日付書式

delimiter

フィールド・デリミタを指定します

特殊文字をデリミタとして使用する場合は、その文字のASCIIコードのHEX値を指定します。 たとえば、次のようにタブ文字をデリミタとして指定します。

format => json_object('delimiter' value 'X''9''')

delimiter : 文字

デフォルト値: | (パイプ文字)

detectfieldorder

外部データ・ファイルのフィールドが表内の列とは異なる順序になるように指定します。 各外部データ・ファイルの最初の行を使用してフィールドの順序を検出し、表の列にマップします。 外部データ・ファイルのフィールド名は、表列の名前と大/小文字を区別しない方法で比較されます。

この形式オプションは、次のプロシージャに適用されます:

  • DBMS_CLOUD.COPY_DATA

  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE

  • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

detectfieldorderの制限事項:

  • データファイルのフィールド名は、最初のレコード行に表示する必要があり、フィールド名の間に空白を含めることはできません。

  • フィールド名レコードのフィールド・デリミタは、ファイル内のデータのフィールド・デリミタと同じである必要があります。

  • 引用符で囲まれたフィールド名はサポートされていません。 データファイルのフィールド名は、大/小文字が区別されない方法で、外部表の列の名前と比較されます。

  • 埋込みフィールド・デリミタは、フィールド名には使用できません。

  • 表の列数は、データファイルのフィールド数と一致する必要があります。

  • この形式オプションは、バイナリ・ファイル形式で正確な列メタデータ情報が含まれるため、ビッグ・データ形式またはOracle Data Pump形式には適用できません。

    テキスト形式(CSV、JSON、ParquetまたはXML)は、最初の行にフィールド名が含まれている場合に、この自動フィールド順序検出を利用できます。

detectfieldorder: true

デフォルト値: false

enablelogs

フォーマット・オプションenablelogsは、次のDBMS_CLOUDプロシージャで使用されます:

  • COPY_DATA

  • COPY_COLLECTION

  • EXPORT_DATA

enablelogsはブール値を指定します。TRUEに設定すると、ログが生成されます。 FALSEに設定すると、ログは生成されません。

たとえば:

format => JSON_OBJECT('enablelogs' value FALSE)

enablelogs: false

デフォルト値: true

encryption

フォーマット・オプションencryptionは、オブジェクト・ストアとの間でデータをエクスポートおよびインポートする暗号化および復号化オプションを指定します。

encryptionを使用して、暗号化および復号化する次のパラメータを指定します:

  • user_defined_function: 指定したBLOB (バイナリ・ラージ・オブジェクト)を復号化または暗号化するための完全修飾ユーザー定義ファンクションを指定します。 復号化または暗号化されたBLOBを返します。user_defined_functionは、encryptionの他のパラメータと相互に排他的です。

    たとえば、ADMIN.DECRYPTION_CALLBACKです。

  • type: 復号化または暗号化するDBMS_CRYPTO暗号化アルゴリズムを指定します。

    typeは、「ブロック暗号アルゴリズム+ブロック暗号連鎖修飾子+ブロック暗号パディング修飾子」形式の値を受け入れます。

    サポートされているブロック暗号アルゴリズムは次のとおりです:

    • DBMS_CRYPTO.ENCRYPT_AES256

    サポートされているブロック暗号連鎖修飾子は次のとおりです:

    • DBMS_CRYPTO.CHAIN_CBC

    • DBMS_CRYPTO.CHAIN_CFB

    • DBMS_CRYPTO.CHAIN_ECB

    • DBMS_CRYPTO.CHAIN_OFB

    サポートされているブロック暗号パディング修飾子は次のとおりです:

    • DBMS_CRYPTO.PAD_PKCS5

    • DBMS_CRYPTO.PAD_NONE

    • DBMS_CRYPTO.PAD_ZERO

    • DBMS_CRYPTO.PAD_ORCL

  • credential_name: 暗号化キーを格納するために使用される資格証明を指定します。

これらのパラメータの値を指定しない場合、ブロック暗号連鎖修飾子およびブロック暗号埋込み修飾子の値は、デフォルトでDBMS_CRYPTO.CHAIN_CBCおよびDBMS_CRYPTO.PAD_PKCS5に設定されます。

フォーマット・オプションencryptionは、次のDBMS_CLOUDプロシージャで使用されます:
  • これらのプロシージャで復号化するパラメータを渡すために使用します:

    • DBMS_CLOUD.COPY_DATA

    • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

    • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE

    • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

      DBMS_CLOUD.CREATE_HYBRID_PART_TABLEの場合、このオプションはオブジェクト・ストレージ・ファイルにのみ適用されます。

    • DBMS_CLOUD.COPY_COLLECTION

  • 次のプロシージャで暗号化するパラメータを渡すために使用します:

    • DBMS_CLOUD.EXPORT_DATA

たとえば:

format => JSON_OBJECT('encryption' value json_object ('type' value DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5, 'credential_name' value 'ENCRYPTION_CRED'))
encryption:value

「値」は、暗号化のための追加パラメータを提供するJSON文字列です:

type:

暗号化タイプを指定します。

credential_name: value

暗号化キーを格納するために使用される資格証明を指定します。

user_defined_function: value

指定されたBLOB (バイナリ・ラージ・オブジェクト)を復号化または暗号化するための完全修飾ユーザー定義ファンクションを指定します。

endquote

データは、quoteおよびendquoteで指定された2つのデリミタで囲むことができます。 指定した場合、quoteおよびendquote文字はロード中に削除されます。

たとえば:

format => JSON_OBJECT(‘quote’ value ‘(’, ‘endquote’ value ‘)’)

endquote:character

デフォルト値: endquoteがないことを意味するNull。

escape

指定時にはエスケープ文字として文字""が使用されます。

escape : true

デフォルト値: false

ignoreblanklines

trueに設定すると、空白行は無視されます。

ignoreblanklines : true

デフォルト値: False

ignoremissingcolumns

field_list内の列がソース・ファイル内の列より多い場合に、余分な列をNULLとして格納します。

ignoremissingcolumns : true

デフォルト値: False

implicit_partition_columns

implicit_partition_columnsフォーマット・オプションをDBMS_CLOUD.CREATE_EXTERNAL_TABLEとともに使用して、暗黙的なパーティション化を有効にし、パーティション列名を指定します。

暗黙的なパーティション化は、次の方法で有効化されます:

  • implicit_partition_columnsを使用して、パーティション列のリストを指定し、implicit_partition_typeを指定します。 たとえば:
    format => '{"implicit_partition_type":"hive",
          "implicit_partition_columns":["country","year","month"]}'
  • implicit_partition_columnsを使用して、パーティション・タイプを指定せずにパーティション列のリストを指定します。 パーティション・タイプは、ハイブまたは非ハイブとして自動的に検出されます。 たとえば:
    format => '{"implicit_partition_columns":["country","year","month"]}'
  • implicit_partition_typeを使用して、パーティション列のリストを指定せずにパーティション列のタイプを指定します。 HIVEスタイルのパーティション・データでのパーティション・キーの自動検出がトリガーされ、列名が決定されます。 たとえば:
    format => '{"partition_type":"hive"}'

implicit_partition_columns : 文字列の配列

デフォルト値: implicit_partition_typeが指定されている場合、列名は、HIVEスタイルのパーティション・データでのパーティション・キーの自動検出によって導出されます。 それ以外の場合、デフォルトはnullで、暗黙的なパーティション化が有効になっていません。

implicit_partition_type

implicit_partition_typeフォーマット・オプションをDBMS_CLOUD.CREATE_EXTERNAL_TABLEとともに使用して、暗黙的なパーティション化を有効にし、パーティション列のデータ型を指定します。

implicit_partition_type : ハイブ

デフォルト値: implicit_partition_columnsを指定すると、型は自動的にハイブまたはハイブ以外として検出されます。 それ以外の場合、デフォルトはnullで、暗黙的なパーティション化が有効になっていません。

keyassignment

COPY_COLLECTIONでのみ使用

新しいコレクションをモンゴ互換コレクションとして作成するか、JSONコレクションとして作成するかを指定します。

値がembedded_oidに設定されている場合、新しいコレクションはモンゴ互換のコレクションとして作成されます。

デフォルトでは、このパラメータは設定されていません。つまり、新しいコレクションがJSONコレクションとして作成されます。

keyassignment: embedded_oid

デフォルト: keyassignmentが設定されていません

keypath

COPY_COLLECTIONでのみ使用

ロードするデータの属性を'_id'値として指定します。

keypathを指定する場合は、keyassignment値もembedded_oidとして指定する必要があります。

'_id'値としてパスの値を選択するには、値をパスに設定します(たとえば、'$.mykey')。

このパラメータはオプションであり、モンゴ互換のコレクションへのロードにのみ有効です。

指定しない場合、Oracleは12バイトの一意のシステムIDを生成し、ロードするデータに'_id'属性がまだ存在しない場合、それを'_id'属性として移入します。

keypath: string

デフォルト: keypathが設定されていません。

keypathが設定されている場合、デフォルトの「文字列」値はNULLです。

language

ロケールに依存する情報を導出可能な言語名(FRENCHなど)を指定します。

language: 文字列

デフォルト値: Null

logdir

logfile_tableまたはbadfile_tableファイルが保存されるディレクトリ・オブジェクト名を決定する文字列値を指定します。

デフォルトでは、logdirは大/小文字を区別しませんが、指定された値が二重引用符で囲まれている場合は大/小文字が保持されます。

たとえば:

format => JSON_OBJECT ('logdir' value 'test_log')

上の例で指定したlogdirフォーマット・オプションでは、logfile_tableまたはbadfile_tableファイルがTEST_LOGディレクトリ・オブジェクトに保存されます。

format => JSON_OBJECT ('logdir' value '"test_log"')

上の例で指定したlogdirフォーマット・オプションでは、logfile_tableまたはbadfile_tableファイルがtest_logディレクトリ・オブジェクトに保存されます。

logdir: string

デフォルト値: DATA_PUMP_DIR

logprefix

logfile_tableおよびbadfile_tableファイルの接頭辞を決定する文字列値を指定します。

ログ表名の形式は、logprefix$operation_idです

デフォルトでは、logprefixは大文字ですが、指定された値が二重引用符で囲まれている場合は大/小文字が保持されます。

たとえば:

format => JSON_OBJECT ('logprefix' value 'TEST')

ログ・ファイルでは、TEST$2_LOGTEST$2_BADのように、TEST接頭辞が使用されます。

logprefix: string

デフォルト値: COPY

logretention

logfile_tableおよびbadfile_tableファイルが保持される、正の整数の期間を日数で指定します。

有効な値: 0から99999

たとえば:

format => JSON_OBJECT ('logretention' value 7)

logretention: number

デフォルト値: 2

numericcharacters

グループ・セパレータおよび小数点として使用する文字を指定します。

decimal_character: 小数点では、数値の整数部と小数部を区切ります。

group_separator: グループ・セパレータは、整数グループ(千、100万、10億など)を区切ります。

numericcharacters: 'decimal_character group_separator'

デフォルト値: ".,"

numberformat

数値書式モデルを指定します。 数値書式モデルでは、指定された有効桁数に数値が丸められます。 数値書式モデルは、1つ以上の数値書式要素で構成されます。

numericcharactersと組み合せて使用します。

numberformat: number_format_model

デフォルト値: NLS_TERRITORYパラメータの設定から導出されます

partition_columns

フォーマット・オプションpartition_columnsDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEとともに使用して、データ・ファイルのタイプ(構造化または非構造化)に応じて、パーティション列がファイル・パスから導出されるときのパーティション列の列名とデータ型を指定します。

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータが含まれ、データ・ファイルが非構造化(CSVテキスト・ファイルなど)の場合、partition_columnsにはデータ型は含まれません。 たとえば、このタイプのpartition_columnsの指定では、次のような形式を使用します。

    '"partition_columns":["state","zipcode"]'

    データ型は、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータで指定されるため、必須ではありません。

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータが含まれず、データ・ファイルが構造化(Avro、ORC、Parquetファイルなど)の場合、partition_columnsオプションにはデータ型が含まれます。 たとえば、partition_columnsの指定を次に示します。

    '"partition_columns":[
                   {"name":"country", "type":"varchar2(10)"},
                   {"name":"year", "type":"number"},
                   {"name":"month", "type":"varchar2(10)"}]'

データ・ファイルが構造化されておらず、type副句がpartition_columnsで指定されている場合、type副句は無視されます。

Hive形式に基づかないオブジェクト名の場合、partition_columnsで指定された列の順序は、file_uri_listのオブジェクト名に表示される順序と一致する必要があります。

 

quote

フィールドの引用符文字を指定します。指定した場合、quote文字はロード中に削除されます。

quote: 文字

デフォルト値: NULL (引用符なしを意味します)

recorddelimiter

レコード・デリミタを指定します

デフォルトでは、DBMS_CLOUDは、デリミタとして適切な改行文字を自動的に見つけようとします。 最初に、ファイルからWindowsの改行文字「\r\n」が検索されます。 Windowsの改行文字が見つかると、それがプロシージャのすべてのファイルのレコード・デリミタとして使用されます。 Windowsの改行文字が見つからない場合は、UNIX/Linuxの改行文字"\n"が検索され、見つかった場合は"\n"がプロシージャのすべてのファイルのレコード・デリミタとして使用されます。

この引数は、デフォルトの動作をオーバーライドする場合に明示的に指定します。たとえば:

format => json_object('recorddelimiter' VALUE '''\r\n''')

レコード・デリミタが存在しないことを示すために、入力ファイルに出現しないrecorddelimiterを指定できます。 たとえば、デリミタが存在しないことを示すには、recorddelimiterの値として制御文字0x01 (SOH)を指定し、recorddelimiter値を"0x''01''"に設定します(この文字はJSONテキストには出現しません)。 たとえば:

format => '{"recorddelimiter" : "0x''01''"}'

recorddelimiterは、プロシージャ・コールごとに1回設定されます。 デフォルト値のdetected newlineを使用している場合、すべてのファイルで同じレコード・デリミタが使用されます(検出された場合)。

recorddelimiter: 文字

デフォルト値: detected newline

regexuri

フォーマット・オプションregexuriは、次のDBMS_CLOUDプロシージャで使用されます:

  • COPY_COLLECTION

  • COPY_DATA

  • CREATE_EXTERNAL_TABLE

  • CREATE_EXTERNAL_PART_TABLE

  • CREATE_HYBRID_PART_TABLE

regexuriの値がTRUEに設定されている場合、クラウド・ソース・ファイルURIのファイル名にワイルドカードおよび正規表現を使用できます。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。 正規表現パターンはディレクトリ名ではサポートされていません。

外部表の場合、このオプションは、オブジェクト・ストレージのファイルに作成された表でのみサポートされます。

たとえば:

format => JSON_OBJECT('regexuri' value TRUE)

regexuri: True

デフォルト値 : False

rejectlimit

指定した数の行が拒否された後で、操作をエラー終了します。

rejectlimit: 数値

デフォルト値: 0

removequotes

ソース・ファイル内のフィールドを囲む引用符を削除します。

removequotes: true

デフォルト値: False

skipheaders

ファイルの先頭からスキップする行数を指定します。

skipheaders: 数値

デフォルト値: 未指定の場合は0、値なしで指定した場合は1

territory

入力データの特性をさらに判断するために地域名を指定します。

territory: 文字列

デフォルト値: Null

Oracleがサポートするテリトリの一覧は、『Oracle Databaseグローバリゼーション・サポート・ガイド』ロケール・データに関する項を参照してください。

timestampformat

ソース・ファイル内のタイムスタンプ書式を指定します。 フォーマット・オプションAUTOでは、次の書式が検索されます。

YYYY-MM-DD HH:MI:SS.FF 
YYYY-MM-DD HH:MI:SS.FF3
YYYY-MM-DD HH24:MI:SS.FF3
MM/DD/YYYY HH:MI:SS.FF3

timestampformat : 文字列

デフォルト値: データベースのタイムスタンプ書式

この文字列には、"$"などのワイルドカード文字を使用できます。

timestampltzformat

ソース・ファイル内のローカル・タイムゾーン付きタイムスタンプ書式を指定します。 フォーマット・オプションAUTOでは、次の書式が検索されます。

DD Mon YYYY HH:MI:SS.FF TZR 
MM/DD/YYYY HH:MI:SS.FF TZR 
YYYY-MM-DD HH:MI:SS+/-TZR 
YYYY-MM-DD HH:MI:SS.FF3 
DD.MM.YYYY HH:MI:SS TZR

timestampltzformat : 文字列

デフォルト値: ローカル・タイムゾーン付きのデータベースのタイムスタンプ書式

timestamptzformat

ソース・ファイル内のタイムゾーン付きタイムスタンプ書式を指定します。 フォーマット・オプションAUTOでは、次の書式が検索されます。

DD Mon YYYY HH:MI:SS.FF TZR 
MM/DD/YYYY HH:MI:SS.FF TZR 
YYYY-MM-DD HH:MI:SS+/-TZR 
YYYY-MM-DD HH:MI:SS.FF3 
DD.MM.YYYY HH:MI:SS TZR

timestamptzformat: 文字列

デフォルト値: タイムゾーン付きのデータベースのタイムスタンプ書式

trimspaces

フィールドの先頭と末尾の空白を切り捨てる方法を指定します。

trimspaces: rtrim| ltrim| notrim| lrtrim| ldrtrim

デフォルト値: notrim

truncatecol

ファイルのデータがフィールドに対して長すぎる場合、このオプションでは、行を拒否するかわりにフィールドの値を切り捨てます。

truncatecol:true

デフォルト値: False

46.6 EXPORT_DATAのDBMS_CLOUDパッケージ形式オプション

テキスト・ファイル形式、CSV、JSONまたはXML 「Oracle Data Pumpの場合」を使用したDBMS_CLOUD.EXPORT_DATAの有効なフォーマット・パラメータ・オプションについて説明します。

これらは、DBMS_CLOUD.EXPORT_DATAで使用する有効なformatパラメータです。 format typeオプションを使用し、値が次のいずれかである場合、テキスト・ファイルの出力を指定: csvjsonまたはxml また、format typedatapumpの場合のformatオプションも表示されます。

format引数は、次の2つの方法で指定します。

format => '{"format_option" : “format_value” }'  

および

format => json_object('format_option' value 'format_value'))

次に例を示します。

format => json_object('type' VALUE 'json')

複数のフォーマット・オプションを指定するには、値を,で区切ります。

たとえば:

format => json_object('compression' value 'gzip', 'type' value 'json')

この表は、formatパラメータのtypeオプションが次のいずれかの場合のDBMS_CLOUD.EXPORT_DATAのフォーマット・オプションについて説明しています: CSV、JSONまたはXML。 その他のプロシージャおよびその他の出力タイプについては、「DBMS_CLOUDパッケージ形式オプション」でフォーマット・オプションのリストを参照してください。

フォーマット・オプション 説明 構文

compression

ソース・ファイルの圧縮タイプを指定します

ノート: ZIPアーカイブ形式はサポートされていません。

format typecsvjsonまたはxmlの場合、デフォルトの圧縮はNullで、圧縮は行われません。

format typedatapumpの場合、サポートされているOracle Data Pumpアクセス・パラメータを指定できます:

  • compression: 有効な値は次のとおりです: BASIC, LOW, MEDIUMおよびHIGH

  • version: 有効な値は次のとおりです: COMPATIBLELATEST、および指定されたversion_number

typeが次の場合:csv | json | xml

compression:gzip, zlib, zstd, bzip2

デフォルト値: 圧縮しないことを意味するNULL値。

compression: gzip | snappy

デフォルト値: snappy

型がdatapumpの場合

compression: BASIC|LOW|MEDIUM|HIGH

delimiter

カスタム・フィールドのデリミタを指定します。

format => json_object('delimiter' value '|')

デリミタ値は、ASCIIコードまたはエスケープ文字にできません。

ノート:

このオプションは、csv typeでのみ適用されます。

delimiter : 文字

デフォルト値、(カンマ)

endquote

quoteおよびendquoteを使用して、フィールドを2つのデリミタで囲むことができることを指定します。 endquoteを指定しない場合、quote文字がデフォルトでendquote文字として使用されます。

たとえば:

format => JSON_OBJECT(‘quote’ value ‘(’, ‘endquote’ value ‘)’)

ノート:

このオプションは、csv typeでのみ適用されます。

endquote:文字

デフォルト値: endquoteがないことを意味するNull。

escape

""文字を使用して、フィールド値の引用符文字の出現を指定します。

ノート:

このオプションは、csv typeでのみ適用されます。

escape : true

デフォルト値: false

encryption

フォーマット・オプションencryptionは、オブジェクト・ストアとの間でデータをエクスポートおよびインポートする暗号化および復号化オプションを指定します。

encryptionを使用して、暗号化および復号化する次のパラメータを指定します:

  • user_defined_function: 指定されたBLOB (バイナリ・ラージ・オブジェクト)を復号化または暗号化するための完全修飾ユーザー定義ファンクションを指定します。 復号化または暗号化されたBLOBを返します。 このパラメータは、encryptionの他のパラメータと相互に排他的です。

    たとえば、ADMIN.DECRYPTION_CALLBACKです。

  • type: 復号化または暗号化する組込み暗号化アルゴリズムを指定します。user_defined_functiontypeは相互に排他的です。

    typeは、「ブロック暗号アルゴリズム+ブロック暗号連鎖修飾子+ブロック暗号パディング修飾子」形式の値を受け入れます。

    サポートされているブロック暗号アルゴリズムは次のとおりです:

    • DBMS_CRYPTO.ENCRYPT_AES256

    サポートされているブロック暗号連鎖修飾子は次のとおりです:

    • DBMS_CRYPTO.CHAIN_CBC

    • DBMS_CRYPTO.CHAIN_CFB

    • DBMS_CRYPTO.CHAIN_ECB

    • DBMS_CRYPTO.CHAIN_OFB

    サポートされているブロック暗号パディング修飾子は次のとおりです:

    • DBMS_CRYPTO.PAD_PKCS5

    • DBMS_CRYPTO.PAD_NONE

    • DBMS_CRYPTO.PAD_ZERO

    • DBMS_CRYPTO.PAD_ORCL

  • credential_name: 暗号化キーを格納するために使用される資格証明を指定します。

これらのパラメータの値を指定しない場合、ブロック暗号連鎖修飾子およびブロック暗号埋込み修飾子の値は、デフォルトでDBMS_CRYPTO.CHAIN_CBCおよびDBMS_CRYPTO.PAD_PKCS5に設定されます。

フォーマット・オプションencryptionは、次のDBMS_CLOUDプロシージャで使用されます:
  • これらのプロシージャで復号化するパラメータを渡すために使用します:

    • DBMS_CLOUD.COPY_DATA

    • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

    • DBMS_CLOUD.CREATE_HYBRID_TABLE

    • DBMS_CLOUD.COPY_COLLECTION

  • 次のプロシージャで暗号化するパラメータを渡すために使用します:

    • DBMS_CLOUD.EXPORT_DATA

たとえば:

format => JSON_OBJECT('encryption' value json_object ('type' value DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5, 'credential_name' value 'ENCRYPTION_CRED'))
encryption:value

「値」は、暗号化のための追加パラメータを提供するJSON文字列です:

type:

暗号化タイプを指定します。

credential_name: value

暗号化キーを格納するために使用される資格証明を指定します。

user_defined_function: value

指定されたBLOB (バイナリ・ラージ・オブジェクト)を復号化または暗号化するための完全修飾ユーザー定義ファンクションを指定します。

header

列名をcsv型の出力ファイルの最初の行として書き込みます。

headerオプションには、booleanまたはstring値を指定できます。

有効な値は次のとおりです。
  • false: ヘッダー行をスキップします。

  • true: ヘッダー行が含まれます。 列名は、queryパラメータのSELECT文に基づいています。 仮想列または仮想式を使用する場合は、SELECT文で列の別名を指定する必要があります。

  • String to define custom header names: カスタム名でヘッダー行を定義できます。 文字列値の列およびデリミタの数は、SELECT文の列およびデリミタの数と一致する必要があります。 デフォルトのデリミタはカンマ(、)です。

たとえば:

format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true)

ノート:

このオプションは、csv typeでのみ適用されます。

header: true| false| String to define custom header names

デフォルト値: false

fileextension

フォーマット・タイプのデフォルトの選択肢をオーバーライドするカスタム・ファイル拡張子。 これは、DBMS_CLOUD.EXPORT_DATAを使用したテキスト形式に適用されます: CSV、JSON、ParquetまたはXML.

指定した文字列がピリオド(ドット)で始まらない場合、最終的なファイル名でファイル拡張子の前に自動的にドットが挿入されます。

ファイル拡張子を指定しない場合は、値を使用: fileextension = 'none'

有効な値: 任意のファイル拡張子。

デフォルト値: format typeオプションに依存します:
  • CSV形式: .csv
  • JSON形式: .json
  • XML形式: .xml

maxfilesize

生成される出力の最大サイズを表すバイト数。

これは、format typeオプションがcsvjsonまたはxmlに設定されている場合に、DBMS_CLOUD.EXPORT_DATAを使用してデータをエクスポートするためのテキスト・ベースの形式に適用されます。

最小値: 10485760 (10 MB )

最大値: 1 GB

デフォルト値: 10485760 (10 MB)

quote

「CSV内」形式。フィールドは2つのデリミタで囲むことができます。 quoteおよびendquoteでデリミタを指定します。 endquoteを指定しない場合、quote文字がデフォルトでendquote文字として使用されます。

ノート:

このオプションは、csv typeでのみ適用されます。

quote: 文字

デフォルト値: NULLの意味では、フィールドは引用符で囲みません。

trimspaces

フィールドの先頭と末尾のスペースをCSV形式で切り捨てる方法を指定します。 quoteパラメータが指定されている場合は、フィールドを引用符で囲む前にスペースをトリムします。

ノート:

このオプションは、csv typeでのみ適用されます。

trimspaces: rtrim| ltrim| notrim| lrtrim| ldrtrim

デフォルト値: notrim

46.7 DBMS_CLOUDのAvroおよびParquetのサポート

この項では、Oracle Databaseで提供されるDBMS_CLOUDAvroおよびParquetのサポートについて説明します。

46.7.1 AvroまたはParquetに対応するDBMS_CLOUDパッケージのフォーマット・オプション

DBMS_CLOUDのformat引数では、ソース・ファイルのフォーマットを指定します。

format引数は、次の2つの方法で指定します。

format => '{"format_option" : “format_value” }'  

および

format => json_object('format_option' value 'format_value'))

次に例を示します。

format => json_object('type' VALUE 'CSV')

複数のフォーマット・オプションを指定するには、値を,で区切ります。

たとえば:

format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true')
フォーマット・オプション 説明 構文

regexuri

regexuriの値がTRUEに設定されている場合、クラウド・ソース・ファイルURIのファイル名にワイルドカードおよび正規表現を使用できます。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。 regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKEファンクションによって実行されるパターン一致と同じです。 正規表現パターンはディレクトリ名ではサポートされていません。

外部表の場合、このオプションは、オブジェクト・ストレージのファイルに作成された表でのみサポートされます。

たとえば:

format => JSON_OBJECT('regexuri' value TRUE)

REGEXP_LIKE条件の詳細は、「REGEXP_LIKE条件」を参照してください。

regexuri: True

デフォルト値:False

type

ファイル・タイプを指定します。

type : avro | parquet

schema

スキーマがfirstまたはallに設定されているときには、AvroまたはParquetファイルのメタデータから外部表の列およびデータ型が自動的に導出されます。

列名はAvroまたはParquetにある列名と一致します。 データ型は、AvroまたはParquetのデータ型からOracleデータ型に変換されます。 すべての列が表に追加されます。

firstは、file_uri_listの最初のAvroまたはParquetファイルから得られるメタデータを使用して、列と列のデータ型を自動生成することを指定します。 すべてのファイルのスキーマが同じ場合は、firstを使用します。

allは、file_uri_listのすべてのAvroまたはParquetファイルから得られるメタデータを使用して、列と列のデータ型を自動生成することを指定します。 ファイルのスキーマが異なる可能性がある場合は、allを使用します(低速)。

デフォルト: column_listを指定した場合は、schema値(指定した場合)が無視されます。 column_listを指定しない場合は、schemaのデフォルト値がfirstになります。

ノート: AvroまたはParquet形式のファイルの場合、schemaフォーマット・オプションは使用できなくなり、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEプロシージャを使用してパーティション化された外部表についてのcolumn_listパラメータを指定する必要があります。

schema : first | all

46.7.2 DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピング

Avroデータ型からOracleデータ型へのマッピングについて説明します。

ノート:

複合タイプ(マップ、配列、構造体など)は、Oracle Database 19c以降でサポートされます。 Avro複合タイプの使用方法の詳細は、「DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ」を参照してください。
Avroタイプ Oracleタイプ
INT NUMBER(10)
LONG NUMBER(19)
BOOL NUMBER(1)
UTF8 BYTE_ARRAY RAW(2000)
FLT BINARY_FLOAT
DBL BINARY_DOUBLE
DECIMAL(p) NUMBER(p)
DECIMAL(p,s) NUMBER(p,s)
DATE DATE
STRING VARCHAR2
TIME_MILLIS VARCHAR2(20バイト)
TIME_MICROS VARCHAR2(20バイト)
TIMESTAMP_MILLIS TIMESTAMP(3)
TIMESTAMP_MICROS TIMESTAMP(6)
ENUM VARCHAR2( n)。"n"はAVRO ENUMの使用可能な値の実際の最大長です
DURATION RAW(2000)
FIXED RAW(2000)
NULL VARCHAR2(1)バイト

Avro複合タイプの使用方法の詳細は、「DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ」を参照してください。

46.7.3 DBMS_CLOUD ORCからOracleデータ型へのマッピングのパッケージ化

ORCデータ型からOracleデータ型へのマッピングについて説明します。

ORC複合型の使用の詳細は、「DBMS_CLOUDパッケージAvroおよびParquet複合型」を参照してください。

ORCタイプ Oracleタイプ 詳細情報
array VARCHAR2(n) JSON形式 DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ
bigint (64ビット) NUMBER(19)  
バイナリ BLOB  
ブール(1ビット) NUMBER(1)  
CHAR CHAR(n)  
date DATE  
DOUBLE BINARY_DOUBLE  
FLOAT BINARY_FLOAT  
int (32ビット) NUMBER(10)  
list VARCHAR2(n) JSON形式 DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ
map VARCHAR2(n) JSON形式 DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ
smallint (16ビット) NUMBER(5)  
文字列 VARCHAR2(4000)またはVARCHAR2(32767)

フォーマット・パラメータ・オプションmaxvarcharの値およびMAX_STRING_SIZEの値に応じて異なります。 詳細は、「AvroまたはParquetのDBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。

struct VARCHAR2(n) JSON形式 DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ
timestamp TIMESTAMP  
tinyint (8ビット) NUMBER(3)  
union VARCHAR2(n) JSON形式 DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ
varchar VARCHAR2(n)  

46.7.4 DBMS_CLOUDパッケージのParquetからOracleデータ型へのマッピング

Parquetデータ型からOracleデータ型へのマッピングについて説明します。

ノート:

複合タイプ(マップ、配列、構造体など)は、Oracle Database 19c以降でサポートされます。 Parquet複合タイプの使用方法の詳細は、「DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ」を参照してください。
Parquetタイプ Oracleタイプ
UINT_64 NUMBER(20)
INT_64 NUMBER(19)
UINT_32 NUMBER(10)
INT_32 NUMBER(10)
UINT_16 NUMBER(5)
INT_16 NUMBER(5)
UINT_8 NUMBER(3)
INT_8 NUMBER(3)
BOOL NUMBER(1)
UTF8 BYTE_ARRAY VARCHAR2(4000バイト)
FLT BINARY_FLOAT
DBL BINARY_DOUBLE
DECIMAL(p) NUMBER(p)
DECIMAL(p,s) NUMBER(p,s)
DATE DATE
STRING VARCHAR2(4000)またはVARCHAR2(32767)

フォーマット・パラメータ・オプションmaxvarcharの値およびAutonomous Database MAX_STRING_SIZEの値に応じて異なります。 詳細は、「AvroまたはParquetのDBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。

TIME_MILLIS VARCHAR2(20バイト)
TIME_MILLIS_UTC VARCHAR2(20バイト)
TIME_MICROS VARCHAR2(20バイト)
TIME_MICROS_UTC VARCHAR2(20バイト)
TIMESTAMP_MILLIS TIMESTAMP(3)
TIMESTAMP_MILLIS_UTC TIMESTAMP(3)
TIMESTAMP_MICROS TIMESTAMP(6)
TIMESTAMP_MICROS_UTC TIMESTAMP(6)
TIMESTAMP_NANOS TIMESTAMP(9)

Parquet複合タイプの使用方法の詳細は、「DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ」を参照してください。

46.7.5 DBMS_CLOUD Oracleデータ型からParquetへのマッピングのパッケージ化

Oracleデータ型からParquetデータ型へのマッピングについて説明します。

Oracleタイプ Parquetタイプ
BINARY_DOUBLE DBL
BINARY_FLOAT FLT
DATE DATE
NUMBER(p,s) DECIMAL(p,s)
NUMBER(p) DECIMAL(p)
TIMESTAMP(3) TIMESTAMP_MILLIS
TIMESTAMP(3) TIMESTAMP_MILLIS_UTC
TIMESTAMP(6) TIMESTAMP_MICROS
TIMESTAMP(6) TIMESTAMP_MICROS_UTC
TIMESTAMP(9) TIMESTAMP_NANOS
VARCHAR2(4000) STRING

NLSセッション・パラメータ

NLSセッション・パラメータNLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMATおよびNLS_NUMERIC_CHARACTERSは、日付、タイムスタンプ、タイムゾーン付きタイムスタンプ書式、および小数マーカー付きタイムスタンプの基数セパレータが、これらの列タイプの表を問い合せるときにどのように表示されるかを定義します。

また、DBMS_CLOUD.EXPORT_DATAを使用してデータをエクスポートし、Parquet出力を指定した場合、Oracle Databaseはこれらのパラメータの値をNLS_SESSION_PARAMETERS表から読み取ります。 Oracle Databaseは、これらの値を使用して、Oracleデータ型のDATEまたはTIMESTAMPをParquet型に変換します。

NLS_SESSION_PARAMETERSパラメータでは、RR書式マスク(2文字の年指定)がサポートされています。

DBMS_CLOUD.EXPORT_DATAを使用してデータをParquetにエクスポートする場合、年のRR書式マスクはこれらのパラメータではサポートされていません。 parquetにエクスポートしようとして、NLS_SESSION_PARAMETERSRR書式マスクを使用するように設定されている場合、アプリケーション・エラーが発生します(RR書式のデフォルト値はNLS_TERRITORYパラメータの値によって異なります)。

パラメータNLS_DATE_FORMATNLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATのいずれかでRR書式マスクを使用する場合、DBMS_CLOUD.EXPORT_DATAを使用してデータをParquetにエクスポートするには、書式値をサポートされている値に変更する必要があります。 たとえば:

ALTER SESSION SET NLS_DATE_FORMAT = "MM/DD/YYYY";
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF';
ALTER SESSION SET  NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM';
値を変更した後、NLS_SESSION_PARAMETERSビューを問い合せて変更を確認できます:
SELECT value FROM NLS_SESSION_PARAMETERS 
       WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');

NLS_DATE_FORMATが設定されている場合、DATEデータ型の列に適用されます。 NLS_TIMESTAMP_FORMATが設定されている場合は、datattypeがTIMESTAMPの列に適用されます。 NLS_TIMESTAMP_TZ_FORMATが設定されている場合、TIMESTAMP WITH TIME ZONEデータ型の列に適用されます。

46.7.6 DBMS_CLOUDパッケージのAvroおよびParquet複合タイプ

AvroおよびParquet複合データ型からOracleデータ型へのマッピングについて説明します。

Oracle Databaseは複合データ型をサポートしています。次の複合データ型が含まれます。

  • struct

  • list

  • map

  • union

  • array

AvroまたはParquetのソース・ファイル・タイプを指定したときに、ソース・ファイルに複合列が含まれている場合、Oracle Databaseの問合せは複合列に対応するJSONを返します。 これにより、問合せ結果の処理が簡略化されます。つまり、Oracleの強力なJSON解析機能をファイル・タイプおよびデータ・タイプのすべてに一貫して使用できるということです。 次の表に、Oracle Databaseの複合タイプに対応するフォーマットを示します。

ノート:

複合フィールドはVARCHAR2列にマップされ、VARCHAR2のサイズ制限が適用されます。
タイプ Parquet Avro Oracle
List: 値のシーケンス List Array VARCHAR2 (JSON形式)
Map: 単一のキーが付いたオブジェクトのリスト Map Map VARCHAR2 (JSON形式)
Union: 異なるタイプの値 該当なし Union VARCHAR2 (JSON形式)
Object: ゼロ個以上のキー/値のペア Struct Record VARCHAR2 (JSON形式)

46.7.7 DBMS_CLOUDパッケージのAvroおよびParquetのOracle列名へのマッピング

AvroおよびParquetの列名をOracleの列名に変換する方法のルールについて説明します。

AvroおよびParquet列名については次のものがサポートされていますが、外部表におけるOracle SQL参照には二重引用符の使用が必要になることがあります。 そのため、AvroおよびParquet列名では、次の項目を使用しないようにして、列名の参照時に二重引用符を使用しなくて済むようにします。

  • 埋込みの空白

  • 先頭の数字

  • 先頭のアンダースコア

  • Oracle SQLの予約語

次の表に、AvroおよびParquetの列名の様々なタイプと、外部表内でOracle列名の列名を使用するためのルールを示します。

AvroまたはParquetの名前 CREATE TABLEの名前 Oracle CATALOG 有効なSQL ノート
part、PartまたはPART part、Part、PART PART

select part

select Part

select paRt

select PART

Oracleでは引用符で囲まれていない列名を暗黙的に大文字にします
Ord No "Ord No" Ord No select "Ord No" 二重引用符は埋込みの空白がある場合に必要になり、文字の大/小文字を維持することにもなります
__index_key__ "__index_key__" __index_key__ select "__index_key__" 二重引用符は先頭にアンダースコアがある場合に必要になり、文字の大/小文字を維持することにもなります
6Way "6Way" 6Way select "6Way" 二重引用符は先頭に数字がある場合に必要になり、文字の大/小文字を維持することにもなります
create、Create、CREATEなど(あらゆる大/小文字のバリエーション)。partition、Partition、PARTITIONなど(Oracleの予約語) "CREATE" "PARTITION" CREATE PARTITION

select "CREATE"

select "PARTITION"

Oracle SQLの予約語を囲む二重引用符が必要です。 それらは大文字に強制されますが、SQLで使用する場合は常に二重引用符で囲む必要があります
rowid、Rowid、ROWidなど(ROWIDのノートを参照) rowid  

select "rowid"

select "Rowid"

select "ROWid"

select "rowid"

ROWIDの場合は、ROWIDの大/小文字混在や小文字のバリエーションを保持するため、常に二重引用符で囲むことで元の大/小文字のバリエーションを使用する必要があります。 表のOracle ROWIDとの特有の競合があるため、大文字で指定したROWIDは自動的に小文字のROWIDとして格納されるため、参照時には常に二重引用符で囲む必要があります。

ノート:

  • 一般に、外部表の列名は二重引用符なしで参照できます。

  • 列名に埋込みの空白、先頭のアンダースコア("_")または先頭の数字("0"から"9")が含まれていない場合は、列名の元の大/小文字が維持されるため、常に二重引用符で囲むことでAvroまたはParquetの列名の元の大/小文字を使用して参照する必要があります。

  • フォーマットとしてavroまたはparquetを指定したDBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用して外部表を作成したら、SQL*PlusのDESCRIBEコマンドを使用して表の列名を表示します。

  • AvroまたはParquetの列名にOracle SQLの予約語が使用されている場合、その列名をSQL内で参照するときは常に二重引用符で囲む必要があります。

46.8 DBMS_CLOUD例外

次の表に、DBMS_CLOUDの例外を示します。

例外 コード 説明
reject_limit 20003 外部表の拒否の制限に達しました。
credential_not_exist 20004 資格証明オブジェクトが存在しません。
table_not_exist 20005 表が存在しません。
unsupported_obj_store 20006 サポートされていないオブジェクト・ストアURIが指定されました。
iden_too_long 20008 識別子が長すぎます。
invalid_format 20009 フォーマット引数が無効です。
missing_credential 20010 必須の資格証明オブジェクト情報が指定されていません。
invalid_object_uri 20011 無効なオブジェクトURIが指定されました。
invalid_partitioning_clause 20012 パーティション化句がないか、指定されていません。
unsupported_feature 20013 現在のデータベース・バージョンには存在しない未サポートの機能が使用されました。
part_not_exist 20014 パーティションまたはサブパーティションが存在しないか、表がパーティション化外部表またはハイブリッド・パーティション表ではありません。
invalid_table_name 20016 無効な表名が使用されました。
invalid_schema_name 20017 無効なスキーマ名が使用されました。
invalid_dir_name 20018 無効なディレクトリ名が使用されました。
invalid_file_name 20019 無効なファイル名が使用されました。
invalid_cred_attribute 20020 無効な資格証明の属性が指定されました。
table_exist 20021 表がすでに存在しています。
credential_exist 20022 資格証明オブジェクトがすでに存在します。
invalid_req_method 20023 リクエスト・メソッドが長すぎるか、無効です。
invalid_req_header 20024 無効なリクエスト・ヘッダーが指定されました。
file_not_exist 20025 ファイルが存在しません。
invalid_response 20026 HTTP応答が無効でした。
invalid_operation 20027 無効なタスク・クラスまたはIDが指定されました。
invalid_user_name 20028 無効なユーザー名が指定されました。


脚注の凡例

脚注3: AzureクラウドREST APIコールのサポートは、ドメイン"blob.windows.net"に制限されます。