外部Data Pump Dumpファイルの問合せ
また、DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用して外部表を作成することで、クラウド内のOracle Data Pumpダンプ・ファイルを問い合せることができます。
このタイプの外部表を作成するためのソース・ファイルは、外部表のORACLE_DATAPUMPアクセス・ドライバを使用して、ソース・システムからエクスポートする必要があります。ORACLE_DATAPUMPアクセス・ドライバを使用したエクスポートの詳細は、「ORACLE_DATAPUMPアクセス・ドライバを使用したデータのアンロードおよびロード」を参照してください。
外部表を作成するには、ORACLE_DATAPUMPアクセス・ドライバを使用してエクスポートされたOracle Data Pumpダンプ・ファイルをオブジェクト・ストアに移動してから、DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用して外部表を作成します。
この例のソース・ファイルは、Oracle Data Pumpダンプ・ファイルexp01.dmpおよびexp02.dmpです。
-
プロシージャ
DBMS_CLOUD.CREATE_CREDENTIALを使用してオブジェクト・ストア資格証明を保存します。たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@example.com', password => 'password' ); END; /この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。オブジェクト・ストアの資格証明を変更しないかぎり、このステップが必要なのは1回のみです。認証情報を一度格納したら、外部表の作成に同じ資格証明名を使用できます。
様々なオブジェクト・ストレージ・サービスの
usernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。 -
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用して、ソース・ファイルの上に外部表を作成します。たとえば:
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形式」を参照してください。
-