2016-03-24 12 views
0

タイトルに記載されているとおり、このケースを処理するための制御ファイルを用意したいと思います。シナリオは私は別のテーブルにレコードを挿入する必要があります。たとえば、WHEN(1:3)はHEAです。テーブルヘッダーに追加する必要があります。 WHEN(1:3)はDTLであり、テーブルの詳細に置き換える必要があります。これは可能ですか?SQLローダー - Replaceを使用して同じコントロールファイルに追加する

答えて

1

ファイルの最初のフィールドに応じて、1つのファイルのデータが3つのテーブルに移動する状況があります。 WHEN句は最初のフィールドを調べ、それに基づいてアクションを実行します。 'WHEN'が満たされた場合、最初のフィールドはスキップされ、fillerと宣言されます。あなたの質問に答えるために、INTO TABLE句の後ろにAPPENDまたはREPLACEを置くことができると思います。試してみてください。

OPTIONS (DIRECT=TRUE) 
UNRECOVERABLE 
LOAD DATA 
APPEND 
INTO TABLE TABLE_A 
WHEN (01) = 'CLM' 
FIELDS TERMINATED BY '|' TRAILING NULLCOLS 
(rec_skip  filler POSITION(1) 
,CLM_CLAIM_ID CHAR NULLIF(CLM_CLAIM_ID=BLANKS) 
... 
) 

INTO TABLE TABLE_B 
WHEN (01) = 'SLN' 
FIELDS TERMINATED BY '|' TRAILING NULLCOLS 
(rec_skip filler POSITION(1) 
,SL_CLAIM_ID CHAR NULLIF(SL_CLAIM_ID=BLANKS) 
... 
) 

INTO TABLE TABLE_C 
WHEN (01) = 'COB' 
FIELDS TERMINATED BY '|' TRAILING NULLCOLS 
(rec_skip filler POSITION(1) 
,COB_CLAIM  
... 
)  

さらに詳しい情報:私が持っていたhttp://docs.oracle.com/cd/B28359_01/server.111/b28319/ldr_control_file.htm#i1005657

+0

はすでにテーブルにREPLACE を試してみました ( BLAのBLA ) 表B ( のbla BLA ) が、その、このように動作しないINTO REPLACE – Jack

+0

リンクによると、上記のAPPENDまたはREPLACEはINTO TABLE句の後にある必要があります。代わりにそれを試してみてください。 –

関連する問題