次に例を示します。
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name =>'CHANNELS_EXT',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp01.dmp,
https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp02.dmp'
format => json_object('type' value 'datapump', 'rejectlimit' value '1'),
column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)' );
END;
/
パラメータは次のとおりです:
-
table_name
: 外部表の名前です。
-
credential_name
: 前のステップで作成された資格証明の名前です。
-
file_uri_list
: 問い合せるData Pumpダンプ・ファイルのカンマ区切りリストです。
-
format
: ソース・ファイルの形式を記述するために指定できるオプションを定義します。タイプを'datapump'
として指定する場合、他の有効な書式パラメータは'rejectlimit'
のみです。
-
column_list
: ソース・ファイル内の列定義のカンマ区切りリストです。
この例では、namespace-string
はOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketname
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
これで、前のステップで作成した外部表に対して問合せを実行できるようになります。次に例を示します。
SELECT count(*) FROM channels_ext;
デフォルトでは、データベースは外部データ・ファイルのすべての行が有効であり、ターゲットのデータ型定義とファイルのフォーマット定義の両方に一致することを前提としています。検証の一環として、DBMS_CLOUD
は、必要なすべてのダンプ・ファイル部分が存在することを確認し、ダンプ・ファイルが有効で破損していないことも確認します(exp01.dmp
、exp02.dmp
など)。DBMS_CLOUD
フォーマット・オプションrejectlimit
を使用すると、これらのエラーを非表示にできます。または、作成した外部表を検証して、エラー・メッセージおよび拒否された行を確認することもできます。詳細は、外部データの検証を参照してください。
パラメータの詳細は、CREATE_EXTERNAL_TABLEプロシージャを参照してください。
サポートされるクラウド・オブジェクト・ストレージ・サービスの詳細は、DBMS_CLOUD URI形式を参照してください。