我有平面文件。我從平面文件加載數據到使用ssis.And柱的一個源表具有以下值:如何在派生列轉換中替換雙引號?
<Somecol1 =""1"" col1values= ""223,567,890,653"">
欲以下列輸出:
<Somecol1 ="1" col1values= "223,567,890,653">
我試圖在派生列來替換。
REPLACE(COLA, "\"","\")
但這是行不通的。
我有平面文件。我從平面文件加載數據到使用ssis.And柱的一個源表具有以下值:如何在派生列轉換中替換雙引號?
<Somecol1 =""1"" col1values= ""223,567,890,653"">
欲以下列輸出:
<Somecol1 ="1" col1values= "223,567,890,653">
我試圖在派生列來替換。
REPLACE(COLA, "\"","\")
但這是行不通的。
我想你幾乎得到正確的表達式,除了替換字符串中的附加斜槓。以下是可能適合您的表達方式。
表達式#1:刪除給定字符串中的所有雙引號。
REPLACE(COLA, "\"", "")
表達#2:替換所有雙出現雙引號與單出現雙引號的。
REPLACE(COLA, "\"\"", "\"")
下面是一個說明表達式#1的例子:
Data Flow task
將取代命名爲頭第一列中的所有雙引號裏面的Derived Column transformation
。下面是一個說明表達式#2的例子:
Data Flow task
將替換所有雙出現雙引號的與命名爲部首第一列內單發生雙引號內的Derived Column transformation
。希望有所幫助。
截圖#1:
截圖#2:
截圖#3:
截圖#4:
截圖#5:
如果您的其他列沒有相同的問題,但這可能不起作用,但如果這是您要導入的唯一文本列,或者它們都是這樣,則可以將您的文本標識符更改爲兩個雙引號一個。然後,SSIS會正確地將它從平面文件中提取出來,並且您將不必在稍後嘗試清理它。
我已經將文本標識符添加爲雙引號。在文本限定符後面的列看起來像
@David - 啊,我現在明白了。我看到列數據爲兩列數據。感謝您的澄清。 – IAmTimCorey 2011-06-02 05:38:57
請找到下面的樣本
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Client_1,"\"",""),"*",""),",",""),"[",""),"]",""),"'",""),"!",""),"/",""),"<>","")
你一定在開玩笑吧! – 2013-02-11 17:34:06
如果平面文件源連接無法處理文件會怎麼樣?你不會通過第一步,因此不能進行派生列轉換。 – topwik 2011-07-07 21:10:00