为什么SSIS在导入数据库时​​不识别制表符列分隔符?

Mat*_*eld 0 ssis

我试图使用SSIS包将数据从.dat平面文件传输到SQL数据库表.我有一个如下所示的dat文件:

Booth 1 Weekly  Status
Status  Date    Time    Operator    NESHAP  HEPA    Alarm
Initial Reading 10/3/2011   7:42 AM Ken Forsberg    0.00    0.00    No
System Reading  11/12/2011  3:10 AM System Log  0.24    2.01    No

No Login    11/12/2011  7:00 AM     0.24    2.03    Yes
No Login    11/12/2011  3:00 PM     0.24    2.03    Yes
No Login    11/13/2011  7:00 AM     0.24    2.04    Yes
No Login    11/13/2011  3:00 PM     0.24    2.02    Yes
No Login    11/14/2011  7:00 AM     0.24    2.06    Yes
No Login    11/14/2011  3:00 PM     0.24    2.05    Yes
No Login    11/15/2011  7:00 AM     0.24    2.06    Yes
No Login    11/15/2011  3:00 PM     0.24    2.04    Yes
No Login    11/16/2011  7:00 AM     0.24    2.05    Yes
No Login    11/16/2011  3:00 PM     0.24    2.05    Yes
No Login    11/17/2011  7:00 AM     0.24    2.07    Yes
No Login    11/17/2011  3:00 PM     0.25    2.10    Yes
No Login    11/18/2011  7:00 AM     0.25    2.09    Yes
Run Code Online (Sandbox Code Playgroud)

但是当我运行平面文件连接管理器编辑器时

我有这个一般:

Locale English(United States)
Code page 1252 (ANSI - Latin I)    
Format: Delimited    
Text qualifier: none    
Header row delimiter: {CR}{LF}    
Header rows to skip: 0    
Column names in the first data row: checked
Run Code Online (Sandbox Code Playgroud)

而对于我的专栏:

Row delimiter: {CR}{LF}    
Column delimiter: Tab {t}
Run Code Online (Sandbox Code Playgroud)

但是在"预览"窗口中,它只显示一列

StatusDateTimeOperatorNESHAPHEPAAlarm    
InitialReading10/3/20117:42 AMKen Forsberg0.000.00No                
System Reading11/12/20113:10 AMSystem Log0.242.01No    
NoLogin11/12/20117:00 AM0.242.03Yes    
NoLogin11/12/20113:00 PM0.242.03Yes    
...
Run Code Online (Sandbox Code Playgroud)

我有行分隔符Carriage Return和Line Feed和列分隔符,Tab但正如您所见,标签未被识别.

我确实在Notepad ++中打开了.dat文件,以确认它们是由Tab分隔的,它们是.

我究竟做错了什么?

小智 6

以下是问题:

  1. 该文件在第一行中具有不相关的行.当我说不相关时,我的意思是它与文件的其余部分不匹配.

  2. 标题行实际上位于文件的第二行,而不是第一行.

我把问题中的数据放在一个.dat文件中.在Notepad ++中打开时,请确保您的文件完全如下所示.箭头表示tabs.要在Notepad ++中查看特殊字符,请单击View --> Show Symbol --> Show All Characters

记事本++中的文件

配置平面文件连接管理器时,请在字段中输入值2Header rows to skip.此外,不要选中该复选框,Column names in the first data row因为列名不在第一行,但它们在第二行.

一般

当您切换到该Columns部分时,列应正确显示您的文件实际与第一个屏幕截图中显示的内容匹配的数据.此外,SSIS将自动检测行和列分隔符.但是,这些行将被命名为Column 0,Column 1等,因为我们跳过了2行.

列

您可以单击Advanced选项卡并根据您的偏好重命名列名称.

高级

此外,数据应在该Preview部分正确显示.

预习

希望有所帮助.