【问题标题】:SSIS 2012: Trim trailing commas from a CSV outputSSIS 2012:从 CSV 输出中修剪尾随逗号
【发布时间】:2014-05-27 23:23:34
【问题描述】:

我有一个文件,我无法控制输出,它在每个数据行而不是标题行上都有一个尾随逗号。

"Pid","Dtdate","Tencode","Stype","Amount","Currentbal"
"13773793","05/26/2014","Abc123","PAYMENT","50.00","1807.95",
"13773794","05/26/2014","Abc123","ADJUSTMENT","10.00","18.95",
"",

我正在尝试弄清楚如何修剪尾随逗号的每一行,以便在 SSIS 中正确读取。

"Pid","Dtdate","Tencode","Stype","Amount","Currentbal"
"13773793","05/26/2014","Abc123","PAYMENT","50.00","1807.95"
"13773794","05/26/2014","Abc123","ADJUSTMENT","10.00","18.95"
""

我假设我会使用脚本转换,但这就是我卡住的地方,我不会进行太多编程,所以我在 VB 脚本任务方面是个新手。

可能值得一提的是,这是在 FOR 每个循环中抓取文件夹中的所有文件。通常只有一个文件,但我正在为可能的倍数腾出空间,文件名是文件名的变量表达式:@[User::FileName]

我的假设是,一旦动态生成文件,您将失去指定列规则的能力。这就是为什么我一直在寻找一种方法来修剪每行的尾随逗号。

我得到的错误是

[Flat File Source [18]] Error: The column delimiter for column "Currentbal" was not found. 
[Flat File Source [18]] Error: An error occurred while skipping data rows.

我认为这是因为尾随逗号告诉系统应该有另一列没有关联的标题。删除尾随逗号后,文件处理正常。

【问题讨论】:

    标签: sql-server csv ssis


    【解决方案1】:

    尝试为最后一列设置列分隔符,如下所示。您需要在框中键入此内容,而不是使用组合框选项。 (或者只需选择 {LF} 并编辑文本并在其前加上逗号)

    【讨论】:

      【解决方案2】:

      更简单的方法是更改​​连接管理器以跳过标题行。

      • 要跳过的标题行:1
      • 第一个数据行中的列名:未选中

      【讨论】:

      • 我怎么没想到。我猜想把标题拉进去的习惯。谢谢。
      猜你喜欢
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      相关资源
      最近更新 更多