たとえば:
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: 問い合せるデータ・ポンプ・ダンプ・ファイルのカンマ区切りリストです。
-
format: ソース・ファイルの形式を記述するために指定できるオプションを定義し、ソース・ファイルの形式を記述するために指定できるオプションを定義します。typeを'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形式」を参照してください。