我有平面文件。我正在使用ssis将数据从平面文件加载到源表。并且其中一列具有以下值:
<Somecol1 =""1"" col1values= ""223,567,890,653"">
我想要关注列输出:
<Somecol1 ="1" col1values= "223,567,890,653">
我试图替换派生列。
REPLACE( COLA, "\"","\")
但这不起作用。
答案 0 :(得分:22)
我认为除了替换字符串中的附加斜杠外,你几乎得到了正确的表达式。以下是可能适合您的表达方式。
表达式#1:删除给定字符串中的所有双引号。
REPLACE(COLA, "\"", "")
表达式#2:用双引号的单次替换所有双次双引号的出现。
REPLACE(COLA, "\"\"", "\"")
这是一个演示表达式#1的例子:
Derived Column transformation
内的Data Flow task
,它将替换第一列中名为标题的所有双引号。这是一个演示表达式#2的例子:
Derived Column transformation
内的Data Flow task
将替换所有双双引号出现单} 第一列中出现双引号,名为标题。希望有所帮助。
屏幕截图#1:
屏幕截图#2:
屏幕截图#3:
屏幕截图#4:
屏幕截图#5:
答案 1 :(得分:1)
如果您的其他列没有同样的问题,这可能不起作用,但如果这是您要导入的唯一文本列,或者它们都是这样,您可以将文本标识符更改为两个双引号而不是一。然后SSIS会正确地将它从平面文件中取出来,你不必在以后尝试清理它。
答案 2 :(得分:1)
请在下面找到样本
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Client_1,"\"",""),"*",""),",",""),"[",""),"]",""),"'",""),"!",""),"/",""),"<>","")