1

最近、SQL ローダーの作業を開始し、その仕組みを楽しんでいます。すべての列を csv 形式 (Excel では 10 列) でロードする必要があるという問題に悩まされていますが、宛先テーブルには約 15 のフィールドが含まれています。ソースファイルの列をスキップしたいが、ここで何をすべきかわからない場合は、フィラーが機能します。ステージングテーブルを使用すると役立ちますが、代替手段はありますか?

どんな助けでも本当に感謝しています。ありがとう。

4

1 に答える 1

3

制御ファイルで列を指定する必要があります

推奨資料: SQL*Loader 制御ファイル リファレンス

10 制御ファイルの残りの部分にはフィールド リストが含まれており、ロードされるテーブルの列形式に関する情報を提供します。制御ファイルのそのセクションについては、第 6 章を参照してください。

第6章からの抜粋:

例6-1 サンプル制御ファイルのフィールド・リスト・セクション

1  (hiredate  SYSDATE,
2     deptno  POSITION(1:2)  INTEGER EXTERNAL(2)
              NULLIF deptno=BLANKS,
3       job   POSITION(7:14)  CHAR  TERMINATED BY WHITESPACE
              NULLIF job=BLANKS  "UPPER(:job)",
       mgr    POSITION(28:31) INTEGER EXTERNAL 
              TERMINATED BY WHITESPACE, NULLIF mgr=BLANKS,
       ename  POSITION(34:41) CHAR 
              TERMINATED BY WHITESPACE  "UPPER(:ename)",
       empno  POSITION(45) INTEGER EXTERNAL 
              TERMINATED BY WHITESPACE,
       sal    POSITION(51) CHAR  TERMINATED BY WHITESPACE
              "TO_NUMBER(:sal,'$99,999.99')",
4      comm   INTEGER EXTERNAL  ENCLOSED BY '(' AND '%'
              ":comm * 100"
    )

このサンプル制御ファイルでは、左側に表示される番号は実際の制御ファイルには表示されません。このサンプルでは、​​次のリストの説明ノートに対応しています。

1 SYSDATE は、列を現在のシステム日付に設定します。列を現在の日付に設定するを参照してください。

2 POSITION は、データ フィールドの位置を指定します。データ フィールドの位置の指定を参照してください。

INTEGER EXTERNAL は、フィールドのデータ型です。データ フィールドのデータ型の指定および数値 EXTERNAL を参照してください。

NULLIF 句は、フィールド条件を指定するために使用できる句の 1 つです。WHEN、NULLIF、およびDEFAULTIF句の使用を参照してください。

このサンプルでは、​​BLANKS パラメーターを使用して、フィールドをブランクと比較しています。フィールドとブランクの比較を参照してください。

3 TERMINATED BY WHITESPACE 句は、フィールドに指定できる区切り文字の 1 つです。TERMINATED フィールドを参照してください。

4 ENCLOSED BY 句は、別の可能なフィールド区切り文字です。囲まれたフィールドを参照してください。

于 2013-09-06T19:37:11.797 に答える