Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NVARCHAR数据未传输-SSIS 2008R2_Ssis_Sql Server 2008 R2_Nvarchar - Fatal编程技术网

NVARCHAR数据未传输-SSIS 2008R2

NVARCHAR数据未传输-SSIS 2008R2,ssis,sql-server-2008-r2,nvarchar,Ssis,Sql Server 2008 R2,Nvarchar,我遇到了一些问题,数据流任务正在完成,表格正在加载,但所有字符字段都是空的。可悲的是,在开发和测试期间,所有这些都能完美运行。但dev和prod之间存在环境差异,dev完全是32位的,prod刚刚设置好,是64位的 因此,这个场景是我在XP机器上使用32位SSI和SQL Server 2000后端构建了这个系统(我目前正在为一个非盈利组织工作,这是他们所有的)。来源是firebird数据库。我已经部署到prod,在那里传输的是所有日期和数字数据,而不是字符数据 Prod正在运行Windows 2

我遇到了一些问题,数据流任务正在完成,表格正在加载,但所有字符字段都是空的。可悲的是,在开发和测试期间,所有这些都能完美运行。但dev和prod之间存在环境差异,dev完全是32位的,prod刚刚设置好,是64位的

因此,这个场景是我在XP机器上使用32位SSI和SQL Server 2000后端构建了这个系统(我目前正在为一个非盈利组织工作,这是他们所有的)。来源是firebird数据库。我已经部署到prod,在那里传输的是所有日期和数字数据,而不是字符数据

Prod正在运行Windows 2008 64位到SQL Server 2008 R2 64位。我们安装了32位Firebird ODB驱动程序,设置了Firebird服务,它们都工作正常。在“调试”菜单中,我已将“运行64位运行时”设置为false。我检查了源任务和目标任务下的所有高级编辑项,在我看来没有问题,
DT_WSTR
NVARCHAR
。我在源代码和目标代码中都做了预览,在源代码中丢失的数据都显示得很好。我在prod和dev环境之间所做的所有更改都是连接配置,通过手动打开它们并更改源的ODBC源和dest的sqlserver。我让Dev数据库离线,以确保没有与不良连接配置更改相关的问题。因此,在调试模式下运行时,会在SQL中为firebird中的每一行创建一行,但只填充数字和日期字段,字符(与firebird匹配的所有
nvarchar
)无法填充

我错过了什么,这是我的第一次32位到64位的转换,我不知道它是否像构建清单一样简单,然后在更改连接配置并部署到
MSDB
后部署包

谢谢你的帮助。
马克

我到处找了找这个

(我参与其中——我是豆子罐头)

这意味着将列的redirect属性更改为redirect行,然后再次拾取它并将其合并回

这完全没有道理,但显然至少对两个人有效


如果这可以解决问题,您可以提供更详细的分析,说明如何解决问题。

您应该首先排除目标字段中可能有信息,但您的客户端应用程序无法显示该信息。运行
从表中选择您的nvarcharfield、ASCII(您的nvarcharfield)A、LEN(您的nvarcharfield)L
。在A或L字段中有值吗?如果字段中有值,您就看不到它们。如果您使用SSIS将其中一些表转储到文本文件而不是数据库,会发生什么情况?您看到文本了吗?谢谢提示。因此,我对目标表运行了SQL,它们都是0长度和空ASCII。然后,我设置了一个小数据任务,将我运行测试的表中的数据复制到平面文件中,平面文件执行相同的操作,Unicode字段中没有数据,只有日期和数字。如果您使用某种本机工具连接到firebird数据库(即firebird查询工具或任何被起诉向其添加数据的应用程序),您肯定可以看到文本数据?只需进行检查,您就可以准确地缩小问题的范围。我已使用前端应用程序进行连接,并显示了数据。此外,在通过SSIS进行源连接的预览窗口中,所有数据都正确显示。就在数据从firebird传输出去时,我丢失了一个y字符列,它们都是Unicode.PS,尽管它提到了informix,但我在web上的其他地方看到了Firebird的解决方案。我很好奇……修复意味着整行都失败了-在实施此修复后,成功和失败行数的更改是否与原始行数一致?好的,我需要更改的只是错误其中一列的流,然后所有函数都正常。没有错误记录,加载的总数与源代码中的总数匹配。这是非常奇怪的行为。我想是时候升级了。