从Windows Oracle 12c迁移到Linux Oracle 18c

时间:2020-06-23 18:49:52

标签: oracle oracle18c

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视图定义

enter image description here

1 个答案:

答案 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包来解决此问题,这将刷新元数据。

希望有帮助。 问候。