たとえば:
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 Object Storageネームスペースで、bucketname
はバケット名です。 詳細は、「オブジェクト・ストレージ・ネームスペースの理解」を参照してください。
これで、前のステップで作成した外部表に問合せを実行できます。 たとえば:
SELECT count(*) FROM channels_ext;
デフォルトでは、データベースは、外部データ・ファイルのすべての行が有効であり、ターゲットのデータ型定義とファイルのフォーマット定義の両方に一致することを前提としています。 検証の一環として、DBMS_CLOUD
は、必要なすべてのダンプ・ファイル部分が存在することを確認し、ダンプ・ファイルが有効で破損していないことも確認します(exp01.dmp
、exp02.dmp
など)。 DBMS_CLOUD
フォーマット・オプションrejectlimit
を使用すると、これらのエラーを抑止できます。 または、作成した外部表を検証して、エラー・メッセージおよび拒否された行を確認することもできます。 詳細は、「外部データの検証」を参照してください。
パラメータの詳細は、「CREATE_EXTERNAL_TABLEプロシージャ」を参照してください。
サポートされているクラウド・オブジェクト・ストレージ・サービスの詳細は、「DBMS_CLOUD URIの書式」を参照してください。