带有Oracle OLE DB源的SSIS(VS2008)
我有一个奇怪的问题,在DEV环境中一切正常,但在PROD中,SSIS报告了一个关于从unicode转换到非unicode的错误。此错误发生在OLE DB源任务级别。因此,我甚至没有机会使用派生列来执行转换 我们在生产服务器上安装了BIDS,任务被标记为错误。当我试图打开属性时,它告诉我元数据与DTSX文件中的不同。当我接受自动更正的提议时,所有有故障的列输入类型(外部列和输出列)的类型都从带有Oracle OLE DB源的SSIS(VS2008),oracle,ssis,Oracle,Ssis,我有一个奇怪的问题,在DEV环境中一切正常,但在PROD中,SSIS报告了一个关于从unicode转换到非unicode的错误。此错误发生在OLE DB源任务级别。因此,我甚至没有机会使用派生列来执行转换 我们在生产服务器上安装了BIDS,任务被标记为错误。当我试图打开属性时,它告诉我元数据与DTSX文件中的不同。当我接受自动更正的提议时,所有有故障的列输入类型(外部列和输出列)的类型都从DT_WSTR切换到DT_STR DEV和PROD中涉及的表的描述是相同的(列的类型相同)。如果我查询字符集
DT_WSTR
切换到DT_STR
DEV和PROD中涉及的表的描述是相同的(列的类型相同)。如果我查询字符集,它们在两种环境中都是相同的
请参考以下查询:
SELECT *
FROM v$nls_parameters
where parameter
like '%CHARACTERSET'
返回:
NLS_CHARACTERSET WE8MSWIN1252
NLS_NCHAR_CHARACTERSET AL16UTF16
在这两个环境中
有办法解决这个问题吗
谢谢,,
Michel您可能会在不同机器上安装/配置的驱动程序中遇到差异 很久以前,我在MySQL驱动程序方面遇到了类似的问题。版本X.Y.Z.13是针对以下内容开发的。服务器获取了驱动程序版本X.Y.Z.14和boom,元数据无效
您需要检查Dev和prod服务器版本的元数据,并确定哪一个适合您。在我的例子中,Dev驱动程序生成了varchar(非unicode)字符串,并与目标系统对齐,而他们在prod中安装的较新驱动程序推断它们应该是nvarchar(unicode)字符串。将nvarchar修改为varchar或更改表超出了项目允许的时间范围,也超出了数据管理团队用于创建表的疯狂规则 闻起来很像您安装/配置了不同版本的驱动程序。很久以前,MySQL驱动程序也遇到了类似的问题。版本X.Y.Z.13是针对以下内容开发的。服务器获得了驱动程序版本X.Y.Z.14和boom,元数据无效。很抱歉,如果我花时间回答,但你是对的,这就是问题所在。谢谢!