Sql server 如果不遵循特定的设计,则程序包出错
因此,我在将平面文本文件(使用逗号作为分隔符)导入数据库中的表时遇到了一个有趣的情况 该文件非常简单,我发现这种奇怪情况的唯一原因是,如果包失败,我想测试一些错误日志tid位 当我试图故意使我的包崩溃时,我拿着我的文本文件,开始在不应该的地方添加随机逗号,并创建最初没有定义的随机标题。奇怪的是,它们都是进口的,没有问题 应该通过并导入到系统中的已批准文件如下所示Sql server 如果不遵循特定的设计,则程序包出错,sql-server,csv,ssis,etl,flat-file,Sql Server,Csv,Ssis,Etl,Flat File,因此,我在将平面文本文件(使用逗号作为分隔符)导入数据库中的表时遇到了一个有趣的情况 该文件非常简单,我发现这种奇怪情况的唯一原因是,如果包失败,我想测试一些错误日志tid位 当我试图故意使我的包崩溃时,我拿着我的文本文件,开始在不应该的地方添加随机逗号,并创建最初没有定义的随机标题。奇怪的是,它们都是进口的,没有问题 应该通过并导入到系统中的已批准文件如下所示 Col1, Col2, Col3 Data1, Data2, Data3 ... 商定的文件应始终为3列,所有列当前均为字符串 当我
Col1, Col2, Col3
Data1, Data2, Data3
...
商定的文件应始终为3列,所有列当前均为字符串
当我试图通过以下方式打破我的包裹时
Col1, Col2, Col3, TESTBREAKHDR
Data1, Data2, Data3
...
Col1, Col2, Col3
Data1, Data2, Data3, TESTBREAKDATA
...
头被忽略,数据被转移到最后一行
对我来说,这些是我想要捕捉的错误,而不是继续进行任何类型的导入。由于这些文件是在其他地方生成的,只是被我的软件包拾取以供使用—而不是试图在修复之前修复文件(因为在修复之前需要进行一些调查工作)—我希望它只是出错,而不进行任何导入
如有任何有用的提示或建议,将不胜感激 在头中添加额外列时,如果在执行包时使用
平面文件源
从平面文件连接管理器
读取数据。平面文件源
将引发异常,提醒您元数据需要更新,验证失败
在数据行中找到额外列时。您可以在数据流任务中添加脚本组件,并针对每一行检查Col3
是否包含逗号,
。如果是这样,抛出异常
只有在超过列的数据长度时,行中的额外信息才会在验证时引发错误
注意:正如您所说,平面文件连接管理器不会在数据行中检测到额外的列,它会将它们连接到最后一列中