3.4.1.9 「外部表プロパティ」ペイン

外部表のオプションを指定します。

外部表は読取り専用の表であり、これらのメタデータはデータベースに格納されますが、データはデータベースの外部に格納されます。

外部表

  • アクセス・ドライバ・タイプ: 外部表の型を指定します。

    • ORACLE_LOADER: テキスト・データ・ファイルからデータを抽出します。これは、外部表から内部表にデータをロードするデフォルトのアクセス・ドライバです。

    • ORACLE_DATAPUMP: バイナリ・ダンプ・ファイルからデータを抽出します。このアクセス・ドライバは、ロードとアンロードの両方を実行できます。

    • ORACLE_BIGDATA: Oracle Big Data Applianceからデータを抽出します。

    • ORACLE_HDFS: Hadoop分散ファイル・システム(HDFS)に格納されたデータを抽出します。

    • ORACLE_HIVE: Apache HIVEに格納されたデータを抽出します。

  • デフォルト・ディレクトリ: 明示的にディレクトリ・オブジェクトに名前を付けないすべての入出力ファイルに対して、使用するデフォルトのディレクトリを指定します。位置はディレクトリ・パスではなく、ディレクトリ・オブジェクトで指定されます。

  • アクセス・パラメータ: 外部表で使用する特定のアクセス・ドライバのパラメータに値を割り当てます。アクセス・パラメータはオプションです。

    • OPAQUE_FORMAT_SPEC: opaque_format_specは、ORACLE_LOADER、ORACLE_DATAPUMP、ORACLE_HDFSおよびORACLE_HIVEアクセス・ドライバのすべてのアクセス・パラメータを指定します。アクセス・パラメータの詳細は、『Oracle Databaseユーティリティ』を参照してください。opaque_format_specで指定するフィールド名は、表定義の列と一致している必要があります。それ以外の場合は、無視されます。

    • USING CLOB: 副問合せを介してパラメータおよびその値を導出できます。副問合せには、集合演算子またはORDER BY句を含めません。CLOBデータ型の1つの項目を含む単一行を戻します。

  • 制限の拒否: 外部データの問合せ中、Oracle Databaseエラーが戻され問合せが中断されるまでに許可する変換エラーの数。

  • プロジェクト列: アクセス・ドライバが、後続の問合せで外部表の行を検証する方法を指定します。

    • ALL: 選択した列に関係なくすべての列値が処理され、完全に有効な列エントリを持つ行のみが検証されます。データ型の変換エラーなど、列値でエラーが発生した場合は、その列が問合せの選択リストで参照されていなくても、行は拒否されます。

    • REFERENCED: 問合せの選択リストの列のみが処理されます。

    「ALL」設定では一貫性のある結果セットが得られます。「REFERENCED」設定では、後続の問合せで参照される列に応じて、戻される行の数が異なる場合がありますが、「ALL」設定より高速です。後続の問合せで外部表のすべての列が選択されている場合、2つの設定の動作は同じになります。

  • 場所: 外部表のデータ・ファイルを指定します。「追加」(+)アイコンを使用して、各場所の仕様を追加します。

    • ORACLE_LOADERおよびORACLE_DATAPUMPの場合、ファイルの名前はdirectory:fileという形式になります。directoryの部分はオプションです。この部分を指定しないと、デフォルトのディレクトリがファイルのディレクトリとして使用されます。ORACLE_LOADERアクセス・ドライバを使用している場合は、ファイル名にワイルドカードを使用できます。アスタリスク(*)は複数文字を表し、疑問符(?)は1文字を表します。

    • ORACLE_HDFSの場合、LOCATION句は、ディレクトリまたはファイルのUniform Resource Identifier (URI)のリストです。URIに関連付けられたディレクトリ・オブジェクトはありません。

    • ORACLE_HIVEの場合、LOCATIONは使用されません。かわりに、Hadoop HCatalog表を読み取ってデータ・ソースの場所(ファイルや別のデータベース)に関する情報を取得します。

不透明なフォーマット仕様

ORACLE_LOADER、ORACLE_DATAPUMP、ORACLE_HDFSおよびORACLE_HIVEアクセス・ドライバのすべてのアクセス・パラメータを指定します。

次に例を示します。

RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
    TERRITORY AMERICAN
    BADFILE log_file_dir:'ext_1v3.bad'
    LOGFILE log_file_dir:'ext_1v3.log'
    FIELDS TERMINATED BY "|" OPTIONALLY ENCLOSED BY '^' LDRTRIM
    ( PROD_ID,
      CUST_ID ,
      TIME_ID DATE(10) "YYYY-MM-DD",
      CHANNEL_ID ,
      PROMO_ID ,
      QUANTITY_SOLD ,
      AMOUNT_SOLD ,
      UNIT_COST ,
      UNIT_PRICE
    )

完全な文は次のとおりです。

CREATE TABLE SH.SALES_TRANSACTIONS_EXT
    (
      PROD_ID NUMBER ,
      CUST_ID NUMBER , 
      TIME_ID DATE ,
      CHANNEL_ID NUMBER ,
      PROMO_ID NUMBER ,
      QUANTITY_SOLD NUMBER , 
     AMOUNT_SOLD NUMBER (10,2) , 
     UNIT_COST NUMBER (10,2) , 
     UNIT_PRICE NUMBER (10,2)
     )
     ORGANIZATION EXTERNAL
     (
     TYPE ORACLE_LOADER
     DEFAULT DIRECTORY DATA_FILE_DIR
     ACCESS PARAMETERS
     (
     RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
    TERRITORY AMERICAN
    BADFILE log_file_dir:'ext_1v3.bad'
    LOGFILE log_file_dir:'ext_1v3.log'
    FIELDS TERMINATED BY "|" OPTIONALLY ENCLOSED BY '^' LDRTRIM
    ( PROD_ID ,
      CUST_ID ,
      TIME_ID DATE(10) "YYYY-MM-DD",
      CHANNEL_ID ,
      PROMO_ID ,
      QUANTITY_SOLD ,
      AMOUNT_SOLD ,
      UNIT_COST ,
      UNIT_PRICE
    )
    )
     LOCATION ( "DATA_FILE_DIR":'sale1v3.dat')
     )
     REJECT LIMIT 100
 ;

CLOB副問合せ

問合せを入力するか、コピーして貼り付けます。

ノート:

外部表フィールドの詳細は、Oracle DatabaseユーティリティおよびOracle Database SQL言語リファレンスを参照してください