- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SSIS 包,可以解压并加载一个文本文件。它在调试器和上传到我们的生产环境的各种服务器上一直运行良好。
我现在的问题是这样的:正在加载一个文件,一切都很顺利,但突然之间,在最后一个数据行(根据错误消息),最后一个字段被截断。我认为我们收到的文件可能被搞乱了,将其打开,一切都很好......
它是一个 |
分隔文件,没有文本限定符,并且 {CR}{LF}
作为行分隔符。由于出现截断错误的字段是该行中的最后一个字段(在本例中是整个文件的最后一个字段),因此其分隔符为 {CR}{LF}
与 |
相反。
该文件看起来很原始,我什至将其加载到 Excel 中,没有任何问题,也没有任何投诉。我已经通过我的本地计算机运行了这个文件,通过 VS 2008 中的调试器运行该包,它运行得很好。有人对这样的行为有任何问题吗?我无法在崩溃的环境中对其进行太多测试,因为这是我们的生产环境,而且现在是高峰时段......因此非常感谢任何建议。
描述:数据转换失败。 “ACD_Flag”列的数据转换返回状态值 4 和状态文本“文本被截断或一个或多个字符在目标代码页中不匹配。”。结束错误 错误:2013-02-01 01:32:06.32 代码:0xC020902A 源:将 ACD 文件加载到表 HDS 平面文件 1 [9] 说明:“输出列“ACD_Flag”(1040)”失败,因为发生截断,并且“输出列“ACD_Flag”(1040)”上的截断行处置指定截断失败。指定组件的指定对象发生截断错误。结束错误 错误:2013-02-01 01:32:06.32 代码:0xC0202092 来源:将 ACD 文件加载到表 [9] 说明:处理数据行 737541 上的文件“MY FLAT FILE”时发生错误。
737541 是文件中的最后一行。
更新:最初我有行分隔符 {CR}
,但我已将其更新为 {CR}{LF}
以尝试解决此问题...虽然无济于事。
最佳答案
我能够重新创建您添加到问题中的错误消息。当行中的列分隔符多于平面文件连接管理器中定义的分隔符时,就会发生错误。
这里有一个简单的例子来说明它。我创建了一个简单的文件,如下所示。
我创建了一个包并使用下面显示的设置配置了平面文件连接管理器。
我使用数据流任务配置了包来读取文件并将数据填充到数据库表中。当我执行该包时,它失败了。
点击了 BIDS 上的执行结果
选项卡。它显示的消息与您在问题中发布的消息相同。
[Flat File Source [44]] Error: Data conversion failed. The data conversion for column "Column 1" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
[Flat File Source [44]] Error: The "output column "Column 1" (128)" failed because truncation occurred, and the truncation row disposition on "output column "Column 1" (128)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
[Flat File Source [44]] Error: An error occurred while processing file "C:\temp\FlatFile.txt" on data row 2.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Flat File Source" (44) returned error code 0xC0202092. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
希望它有助于确定您的问题。
我认为文件最后一行最后一个字段中的值可能超过平面文件连接管理器上最后一列的 OutputColumnWidth
属性值.
右键单击 SSIS 包上的平面文件连接管理器。单击平面文件连接管理器编辑器
上的高级
选项卡页。单击最后一列并检查 OutputColumnWidth
属性上的值。
现在,验证导致包失败的文件最后一行的最后一个字段的数据长度。
如果这是问题的原因,这里有两个可能的选项来解决这个问题:
将最后一列的 OutputColumnWidth
属性增加到满足您要求的适当长度。
如果您不关心截断警告,则可以更改平面文件源编辑器最后一列的截断错误输出。双击平面文件源编辑器
,单击错误输出
。将截断列值更改为忽略失败
或重定向行
。我更喜欢重定向行
,因为它能够通过将无效内容重定向到单独的表来跟踪传入文件中的数据问题,并采取必要的操作来修复数据。
希望能为您提供解决问题的想法。
关于sql-server - 如何防止 SSIS 截断平面文件中最后一个数据行的最后一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14652987/
我有一些自定义控制流和数据流任务未显示在 SSIS 工具箱中。当我在 SSDT 中打开包含自定义任务的包时,加载该包时出现几个错误。 加载 MyModuleTemplate1.dtsx 时出错:由于错
我有一个现有的 SSIS 包 (load1),它将数据从一台服务器 (srv1) 加载到我的服务器 (srv2)。在我可以运行 load1 之前,还有 2 个其他负载需要在 srv1 上运行,然后 l
我有点困惑 async方法是否适用于 SSIS 作业。脚本任务项创建一个面向 .NET Framework 4.5 的 Visual Studio 项目,输出类型为类库。 如果我制作主要方法 publ
有没有一种方法可以在 SSIS 执行期间动态创建目标文件夹而不使用脚本任务,例如。我有代码 123、133、143,如果不存在,我想在下面创建一个文件夹位置 D:\Outbox\ACI\123 D:\
我需要执行 29 个 ssis 包。所以计划创建一个主包来执行所有这些包。我不知道如何实现这一点。能否请您简要解释一下。提前致谢 ! 最佳答案 这篇文章很好地概括了主包的功能,它基本上是一个在控制流中
我有一个像这种格式的字符串。就我而言,我只需要从字符串大小写中提取字符 1)12AB 2)SD12 3)1WE4 输出 1)AB 2)SD 3)WE 我只需要提取字符。我在 SSIS 包的派生列中使用
使用: Windows 7 企业版; Visual Studio Pro 2017 (15.3.5);固态硬盘 15.1 无法让数据查看器在我的 SSIS 包上弹出。我确实做了一些 Google-fu
我可以使用什么模式/通配符来分别获取以下两个文件?目前,我正在使用此模式 CRM#ContractsBillingAccount*.csv 但两个文件名都符合此模式。如何避免? CRM#Contrac
是否可以在脚本任务中将发生的异常重定向到另一个表/日志?如果是这样,该怎么做? 最佳答案 您可以在脚本任务中执行在 vb.net 或 C# 中可以执行的任何操作。但是如果你在一个脚本任务中做了这么多,
我使用 CSV 中的以下内容来测试 SCD。我认为它会识别 LocationID 并在必要时更新记录。但它没有。它只插入新记录。 我正在使用带有 Win 身份验证的 Visual Studio 201
我对 SSIS 事务隔离级别的问题很少。 考虑一个场景:我有一个执行 SQL 任务,它在表 A 中插入数据。这个任务指向一个数据流任务,它读取以前插入到 A 上的数据。我已经启动了分布式事务,如果我在
你好 我正在创建一个需要按指定顺序执行以下操作的 ssis 包: 1:处理一些数据 2:将该数据移动到其他一些表 3:获取一些数据并将其推送到纯文本文件中。 我为这些创建了 3 个存储过程,我为 1
使用SQLServer 2012 Enterprise,在“控制流”选项卡中单击鼠标右键时,在SSIS中看不到“程序包配置向导”。我可以看到所有其他项目(日志,数字签名...)。 以下是有关我的安装的
我有一个 Foreach 容器,其中有一个 执行进程任务 。我有很多 Console.WriteLine() 语句。 图像中突出显示的 3 个图像可用于从 .exe 获取输出。 我在包中声明了一个变量
SSIS 非常擅长处理所有记录都相同的平面文件,但当存在一点复杂性时就不太好了。 我想导入一个与此类似的文件 - Customer: 2344 Name: John Smith Item
当我在 SSIS 包 (ProtectionLevel) 上设置权限并输入 PackagePassword 时,当我在计算机上打开包时,它不会提示我输入密码。 我做错了吗? 最佳答案 你可能没有做错什
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我致力于创建 biml。从中生成 ssis 包。构建 SSIS 项目,然后在服务器上部署 ispac 文件。 但是这些所有手动步骤都可以自动化吗? 我可以使用命令行从 biml 生成 ssis 吗?除
我已经创建了一个 SSIS 包。如果包失败,我需要将事务应用于此包以进行回滚。我发现的是一个属性“TransactionOption”,它应该被赋予“Required”。我对吗 ?并且我已将包的 Tr
我在 Visual Studio 2015 中向 SSIS 添加自定义 SSIS 组件时遇到问题。 我的系统是:Windows 8.1 64 位 Visual Studio 社区 2015 版14.0
我是一名优秀的程序员,十分优秀!