从oracle数据库读取nchar数据的问题

时间:2009-04-30 14:20:50

标签: oracle

我有一个oracle数据库,其中nls字符集设置为ALS32UTF8,nls nchar字符集设置为UTF8。

但是,如果我将任何数据插入表中的nvarchar列。

当我做一个选择时,我得到的数据是???。

为什么会这样?

有趣的是,使用TOAD我可以使用架构浏览器查看正确的nvarchar数据 - >数据

但如果我使用sql做一个选择我得到???。

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您客户端的NLS_LANG设置是什么?有关NLS参数的良好参考,请阅读Oracle的FAQ。有关Unicode的其他阅读,请参阅Joel Spolsky的this essay

答案 1 :(得分:0)

您需要将客户端NLS_LANG设置为utf。

sqlplus使用这些环境变量(Windows上的注册表参数): (您可能需要使用sqlplusw.exe在Windows上使用utf-8。)

NLS_LANG = AMERICAN_AMERICA.AL32UTF8 LC_CTYPE = “的en_US.UTF-8” ORA_NCHAR_LITERAL_REPLACE =真

另请参阅:Inserting national characters into an oracle NCHAR or NVARCHAR column does not work