2017-01-16 126 views
0

我加載一個平面文件到SQL數據庫。平面文件用逗號分隔。某些列值有逗號而沒有用雙引號封裝(例如 - HPPV,TIRE)。現在,當我嘗試使用逗號作爲文本限定符時,我收到一條消息,指出列分隔符和文本限定符不能相同。如何使用逗號作爲兩個列分隔符和文本限定符

我想以某種方式使用逗號作爲文本識別符,使平面文件保持價值 - HPPV,輪胎作爲單一實體 - HPPVTYRE或HPPV條輪胎,而不是在它蔓延到下一列。

有什麼辦法,我們可以使用逗號作爲文本限定符,它已經是一個列分隔符?????

+0

沒有道理。你能不能與誰提供這個文件給你,讓他們提供一個替代版本,他們已經做了一些理智的工作?文本分隔符是指在對被使用,並且被用於表示這樣的一對中,逗號和不應該被解釋爲這樣的。如果它們是相同的字符,你怎麼可以,或者我,或者一臺電腦,可能都知道,當它遇到這樣的性格,無論是「這是由文字分隔符保護的逗號分隔符」或「這是結束文本分隔的部分「。 –

+0

或者換句話說,我會假設你的提案有效。這裏有3列的一些數據,其中一列包含一個嵌入式逗號 - 「aaa,bbb,ccc,ddd」。如果您可以告訴我*哪些列包含嵌入的逗號,請清楚解釋這是如何工作的。 –

+0

你的源文件有多大?把源文件分成好的行和壞的行怎麼樣?創建一個讀入整行的源文件連接器。使用平面文件創建數據流使用此新連接的源以線條形式讀取源平面文件。使用派生列添加CommeCount列'LEN​​([LineColumn]) - LEN(REPLACE([LineColumn],「,」,「))),使用條件分割將任何具有CommaCount> 10的行發送給一個新的平面文件目的地。然後分別處理這兩個文件。 –

回答

0

不,我不這麼認爲,但我搜查,發現this article這可能會有幫助。

相關問題