我有一个包含超过150列的数据流,其中很多都是数据类型字符串,我需要从每个文本列的值中删除逗号和双引号,因为它们在将数据导出到CSV时会导致问题,除了为派生列或脚本组件中的每个列显式执行此操作之外,还有一种简单的方法吗?
答案 0 :(得分:1)
在下面的脚本生成器中,按照您想要的顺序放置CSV中的所有列名称,然后运行它。
;With ColumnList as
(
Select 1 Id, 'FirstColumn' as ColumnName
Union Select 2, 'SecondColumn'
Union Select 3, 'ThirdColumn'
Union Select 4, 'FourthColumn'
Union Select 5, 'FifthColumn'
)
Select 'Trim (Replace (Replace (' + ColumnName + ', '','', ''''), ''"'', ''''))'
From ColumnList
Order BY Id
Id列应该包含一个正确的序列(我会在EXCEL中生成它。这是输出
---------------------------------------------------------
Trim (Replace (Replace (FirstColumn, ',', ''), '"', ''))
Trim (Replace (Replace (SecondColumn, ',', ''), '"', ''))
Trim (Replace (Replace (ThirdColumn, ',', ''), '"', ''))
Trim (Replace (Replace (FourthColumn, ',', ''), '"', ''))
Trim (Replace (Replace (FifthColumn, ',', ''), '"', ''))
(5 row(s) affected)
您可以从此处剪切并粘贴到您的SSIS数据流中。
答案 1 :(得分:0)
我找到了一种循环遍历脚本组件中的列的方法,然后我能够检查列数据类型并执行替换功能,这是我使用的post。