0
正如標題中提到的,我希望有一個控制文件來處理這種情況。該場景是我必須將記錄插入到不同的表中。例如,WHEN(1:3)是HEA,它需要追加到表頭中。 WHEN(1:3)是DTL時,它需要替換成表格Detail。這是可能的嗎?SQL加載程序 - 使用替換和追加在同一個控制文件
正如標題中提到的,我希望有一個控制文件來處理這種情況。該場景是我必須將記錄插入到不同的表中。例如,WHEN(1:3)是HEA,它需要追加到表頭中。 WHEN(1:3)是DTL時,它需要替換成表格Detail。這是可能的嗎?SQL加載程序 - 使用替換和追加在同一個控制文件
我有一種情況,根據文件中的第一個字段,來自一個文件的數據轉到三個表。 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
我已經試過 REPLACE INTO表A ( BLA BLA ) REPLACE INTO表B ( BLA BLA ) ,但它不是以這種方式工作 – Jack
根據鏈接,APPEND或REPLACE應該在上面提到的INTO TABLE子句之後。請嘗試,並讓我們知道。 –