2013-03-01 67 views
0

我试图插入中国字到Oracle数据库,但无论如何它未能正确显示中国字,这是我的数据库插入,然后从Oracle数据库

SQL> select * FROM nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET'; 


PARAMETER 
------------------------------ 
VALUE 
-------------------------------------------------------------------------------- 
NLS_NCHAR_CHARACTERSET 
AL16UTF16 

SQL> select * FROM nls_database_parameters where parameter='NLS_CHARACTERSET'; 

PARAMETER 
------------------------------ 
VALUE 
-------------------------------------------------------------------------------- 
NLS_CHARACTERSET 
AL32UTF8 

中国的角色将是”设置.. “当我复制/粘贴到我的SQLPLUS运行查询。 我使用的版本是Oracle数据库11g第二版11.2.0.3.0 - 64位。 任何提示?

+0

是什么«字符将是‘..’当我复制/粘贴»是什么意思?你在Windows上还是在Unix上? – 2013-03-01 10:50:32

+0

Unix服务器..我的错误在这里。我将我的查询复制/粘贴到SQLPLUS中。 – crchin 2013-03-01 10:52:52

+0

当你粘贴它时,角色看起来很好吗?你可以跑'从常规的bash控制台回声世并问'? – 2013-03-01 10:59:19

回答

0

可能有几个问题:

1)字符不能存储在数据库中。

2)中的人物可能会因客户端语言设置转换成别的东西。

3)您正在使用无法显示的字符工作的工具。

-

1)检查字符的字节值,因为它是存储在表中。

select dump(column) from table where ... 

转储函数将显示字节值,并且您可以检查列中是否存储了正确的字节。

2)检查NLS_LANG您的客户机上设置。

3)如果正确的字节存储在表和他们没有被转换成别的东西,由于服务器和客户端,那么也许您的工具不能正确显示的字符之间的NLS_LANG不匹配。我很确定SQLPlus的界面非常有限。也许SQL Developer可以显示更多的字符。

相关问题