Oracle 11g和.NET ODP字符集转换

时间:2014-05-17 18:29:57

标签: oracle set character

我们有带有EE8ISO8859P2字符集的Oracle 11g数据库。此字符集无法更改,即必须保持不变。

但是,将从数据库插入和读取的数据将来自另一个字符集:CL8MSWIN1251。

我们正在使用.NET和ODP。一种可能的方法是.NET应用程序本身的手动音译。

以下使用Oracle 11g,.NET和ODP的方案是否可行?

  1. 使用EE8ISO8859P2字符集编码将数据存储在服务器上的数据库中。
  2. ADO.NET ODP驱动程序连接到数据库并将字符数据检索为不透明字节,并使用映射在.NET客户端中进一步解码:CL8MSWIN1251 => CLR Unicode。
  3. 我们已尝试使用NLS_LANG环境变量,但这并没有解决问题。

    有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为您的意思是ODP,而不是ODC

我认为你的建议不是一个好主意。当然,总是可以欺骗"欺骗" .NET应用程序中的数据库字符。但想象一下,DBA必须分析数据库中的问题。通常他会使用像SQL * Plus,SQL Developer或类似的工具。或者当另一个工具访问数据库时会发生什么,例如用于报告目的。所有这些主题都不起作用。

Oracle数据库实际上有两个字符集,"正常"一个国家"一。也许您可以使用NVARCHARNCHAR数据类型设置的第二个字符。