enter image description here我们正在将Oracle DB从12c Windows Oracle迁移到18c Linux Oracle安装。视图中的某些列(派生的列)已变为unicode,并且下游SSIS无法使用。这些视图在SSIS中给出错误的任何原因是什么? SSIS抱怨在18c列中已成为unicode
12c视图定义是 enter image description here
18 c视图定义
答案 0 :(得分:0)
我认为您的问题与此相符:
Oraoledb:无法在Unicode和非Unicode字符串数据类型之间进行转换(文档ID 960508.1)
这是由于取决于是否设置了NLS_LANG环境变量,OleDb提供程序报告的元数据有所不同。通常,在设置了NLS_LANG的环境中开发SSIS程序包,然后将其部署到没有设置它的环境中时,会观察到此行为。元数据的差异会导致错误,并且正在通过Oracle错误号bug 7836009进行调查。
要解决此问题,请将NLS_LANG设置为与开发软件包时所用的框相同的设置,这将导致在两种情况下都报告相同的元数据。应在注册表中的NLS_LANG环境变量下设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<homename>\NLS_LANG
在Linux中以与原始数据库相同的值导出NLS_LANG变量
还可以通过在部署后刷新SSIS包来解决此问题,这将刷新元数据。
希望有帮助。 问候。