【问题标题】:Invalid Data Causes SSIS Flat File Import to Hang无效数据导致 SSIS 平面文件导入挂起
【发布时间】:2014-11-11 21:14:36
【问题描述】:

我正在 VS 2010 中为 2012 实例开发 SSIS 包。我正在从不会清理其数据的供应商处导入平面文件。我无法超越“平面文件源”步骤,因为数据被严重破坏它挂起并且不会继续解析。

这是一个带有标题的好数据示例:

EventID|AccountID|ListID|ID|Date
1|3000|20030|1092997696|10-Nov-2014 09:36:13

以下是错误处理将(并且正在)捕获的错误数据:

1|3000|20030|1092997696;ҧ��DAVNJ��|11-Nov-2014 06:40:28

这是挂在我的包裹上的数据:

1|3000|20030|1092997696ci[
a5��~[�t:RW�uXXïA,u��ïn��I�    �JA!QXQ|11-Nov-2014 08:27:27

我该如何处理?请记住,我无法超越平面文件解析步骤来使用派生列/条件拆分/脚本任务。

提前致谢! 克尔斯滕

【问题讨论】:

  • 看来你有一个回车。 SSIS 解析库将在该行停止并报告您有一条短线。
  • 在这种情况下,我倾向于使用“您选择的技术”编写文件预处理器,以将坏文件转换为 SSIS 不会吐出的东西。我知道,双重处理,如果它不能做到这一点,使用该工具有什么意义等等。我只是想提供一种基于限制的方法。
  • 我同意 billinkc。要就如何进行预处理提出建议,我们需要更多地了解约束。是否有任何可以保证遵守的规则,即使数据不好?例如,管道是否只作为分隔符出现,并且总是在应该出现的时候出现?如果是这样,您可以使用 C#/VB 脚本任务轻松清理文件。

标签: file unicode ssis freeze flat


【解决方案1】:

想出了一种方法来获取数据,这样我就可以清理它了!

CREATE TABLE dbo.crap_data_varcharmax(
    DataBlob NVARCHAR(MAX));

BULK INSERT dbo.crap_data_varcharmax
FROM '\\SQLSERVERNAME01\e$\Folder\FileName.txt' WITH (ROWTERMINATOR = '\n', FIELDTERMINATOR = '|', FIRSTROW = 2);

SELECT * 
FROM dbo.crap_data_varcharmax;

【讨论】:

    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多