【问题标题】:Unexpected line break when importing to SQL from SSIS从 SSIS 导入 SQL 时出现意外的换行符
【发布时间】:2015-12-29 16:09:36
【问题描述】:

当我导入一个每隔一段时间从客户端收到的以管道分隔的 .txt 文件时,我的一条记录将导入到原始表中,并在元组中带有换行符。但是当我查看 .txt 文件时,我看不到 {CR}{LF}{LF}

我不知道为什么会这样。有没有其他人经历过这种情况?

【问题讨论】:

  • 如果您尝试重新导入同一个文件,问题是否可以重现?如果是这样,您能否将文件缩减为能够重现该问题的最小文件?
  • 是否有多余的“|”在某处的数据中?当 SSIS 看到一个额外的分隔符并且列不同步时,我看到了类似的结果。仔细检查文件中导致问题的行,和它之前的行。我的数据是用竖线分隔的客户数据,地址的一部分类似于“12 Chape| Road”。
  • @TabAlleman 是的,我可以,当我查看 Notepad++ 时,我没有看到任何奇怪的字符或多余的管道。

标签: sql-server ssis flat-file


【解决方案1】:

我之前遇到过这样的问题,发现在某些情况下,SSIS 只能使用十六进制格式识别制表符、换行符和回车:

x0009 - tab
x000A - feed
x000D - return 

尝试在派生列中使用类似的内容:

(DT_STR,50,1252)TRIM(LOWER(REPLACE(REPLACE(REPLACE( *{your_column}*,"\x0009",""),"\x000A",""),"\x000D","")))

【讨论】:

    【解决方案2】:

    我也遇到过类似的问题。在字符串数据已经使用派生列或自定义脚本组件进入数据流之后,我最终从字符串数据中删除了任何 \n 或 \r 转义字符。这为我解决了问题。它有助于让数据查看器在您调试时查看数据的样子。

    【讨论】:

    • 是的,这就是我未来所做的,但我真的很想知道为什么会这样!
    • 能否分享一下您如何使用 SSIS 派生列解决此问题的详细信息
    猜你喜欢
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    相关资源
    最近更新 更多