0

我正在尝试将中文单词插入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 Database 11g Release 11.2.0.3.0 - 64bit。有什么提示吗?

4

1 回答 1

0

可能有几个问题:

1) 字符不能存入数据库。

2) 根据客户端语言设置,字符可能会转换为其他字符。

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

--

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

select dump(column) from table where ...

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

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

3) 如果正确的字节存储在表中,并且由于服务器和客户端之间的 NLS_LANG 不匹配,它们没有被转换为其他内容,那么您的工具可能无法正确显示字符。我很确定 SQLPlus 的界面非常有限。也许 SQL Developer 可以显示更广泛的字符。

于 2013-03-01T13:36:54.047 回答