我有一个oracle数据库,其中nls字符集设置为ALS32UTF8,nls nchar字符集设置为UTF8。
但是,如果我将任何数据插入表中的nvarchar列。
当我做一个选择时,我得到的数据是???。
为什么会这样?
有趣的是,使用TOAD我可以使用架构浏览器查看正确的nvarchar数据 - >数据
但如果我使用sql做一个选择我得到???。
任何人都知道如何解决这个问题?
答案 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