たとえば、次のとおりです。
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name =>'PET1',
credential_name =>'DEF_CRED_NAME',
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
( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_11.txt''),
partition p2 values less than (2000) location
( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_21.txt''),
partition p3 values less than (3000) location
( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_31.txt'') )'
);
END;
/
パラメータは次のとおりです:
-
table_name
: 外部表の名前です。
-
credential_name
: 前のステップで作成された資格証明の名前です。
-
partitioning_clause
: 個々のパーティションの場所情報を含む、完全なパーティション化句です。
-
format
: ソース・ファイルのフォーマットを記述するために指定できるオプションを定義します。format: ソース・ファイルのフォーマットを記述するために指定できるオプションを定義します。
ソース・ファイルのデータが暗号化されている場合は、encryption
オプションを指定してformat
パラメータを指定して、データを復号化します。データの復号化の詳細は、オブジェクト・ストレージからのインポート中のデータの復号化を参照してください。
-
column_list
: ソース・ファイル内の列定義のカンマ区切りリストです。
この例では、namespace-string
はOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketname
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
これで、前のステップで作成した外部パーティション表に対して問合せを実行できます。Autonomous Databaseは、外部パーティション表のパーティション化情報を利用して、問合せがオブジェクト・ストア内の関連データ・ファイルにのみアクセスするようにします。たとえば、次の問合せでは、パーティションP1からのみデータ・ファイルを読み取ります:
SELECT * FROM pet1 WHERE col1 < 750;
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
を使用して作成する外部パーティション表には、2つの非表示列file$path
およびfile$name
が含まれます。これらの列は、レコードの取得元ファイルの識別に役立ちます。詳細は、外部表のメタデータ列を参照してください。
指定したフォーマット・オプションに一致しない行がソース・ファイル内にある場合、問合せはエラーを報告します。これらのエラーを抑制するには、rejectlimitなどのDBMS_CLOUD
パラメータを使用できます。または、作成した外部パーティション表を検証し、エラー・メッセージと拒否された行を確認して、それに従ってフォーマット・オプションを変更することもできます。詳細は、外部データの検証および外部パーティション・データの検証を参照してください。
パラメータの詳細は、CREATE_EXTERNAL_PART_TABLEプロシージャを参照してください。
サポートされるクラウド・オブジェクト・ストレージ・サービスの詳細は、DBMS_CLOUD URI形式を参照してください。