2012-07-12 185 views
2

我正在使用oracle 11g中的sqlldr(sql loader)。 我想將3個字段連接成一個字段。有沒有人做過這個?在sqlldr中連接多個字段

ex: TABLE - 「CELLINFO」字段爲(mobile_no,service,longitude)。給出的數據是(+ 9198449844,idea,110,25,50),即(mobile_no,service,grad,min,sec)。

但是,當將數據加載到表格中時,我需要將最後3個字段(grad,min,sec)連接到表格的經度字段中。

這裏我不能手動編輯,因爲我有1000的數據被加載。

我也嘗試過使用||,+和concat()....但我無法。

回答

6

CTL可以是:

load data 
append 
into table  cellinfo 
fields terminated by "," 
(
mobile_no, 
service, 
grad BOUNDFILLER, 
min BOUNDFILLER, 
sec BOUNDFILLER, 
latitude ":grad || :min|| :sec" 
) 

suposing cellinfo(mobile_no,服務,緯度)。

一些不錯的信息here on orafaq

或者,您也可以修改您的輸入:

awk -F"," '{print $1","$2","$3":"$4":"$5}' inputfile > outputfile 
+0

那豈不是'緯度表達 「:畢業||:分||:秒」'? – Benoit 2012-07-12 15:18:30

+0

我的ctls在工作時使用'expression' :),但是在我發佈的鏈接中,我已經看過沒有表達式的例子。我沒有嘗試沒有'表達式'。讓我們說什麼kattashri說。 – 2012-07-13 05:46:05

+0

在我看來,如果你不使用'EXPRESSION',那麼你必須在輸入數據中有一些字段,你可以在表達式中引用。 – Benoit 2012-07-13 06:40:08