我希望在Oracle數據庫中創建外部表,從服務器上的平面文件檢索其數據。這個文件的格式是不平凡的。該文件中的每一行都可以是幾種不同佈局中的一種,具體取決於行的前綴(前綴本身總是固定長度)。例如,以'TYPE1'
開頭的行將具有與以'TYPE2'
開頭的行不同的佈局。Oracle外部表:高級平面文件佈局
我讀過外部表可以利用所有可用於SQL加載程序的控制文件的結構。但是,任何文檔我只能讀取接縫來處理普通的平面文件佈局,因此所有行都共享一個通用佈局。
WHEN (1:5) = 'TYPE1'
(
field1 POSITION(10:18),
field2 POSITION(26:35)
)
WHEN (1:5) = 'TYPE2'
(
field1 POSITION(23:27),
field2 POSITION(15:19)
)
我怎樣才能表達使用Oracle的外部表定義的語法這樣的佈局:一個SQL Loader控制文件可以使用WHEN
條款很容易處理這種情況?
感謝該鏈接,這是非常有用的! :)但是,根據該文檔,LOAD WHEN子句不用於在幾個字段佈局之一之間進行選擇: 「LOAD WHEN condition_spec子句用於標識應傳遞給數據庫的記錄。變化:「 你碰巧有一個這個條款的例子選擇不同的字段佈局,而不是選擇哪些記錄將被導出? – 2009-05-22 17:30:15