PL/SQL中文乱码解决方法

1. 先查看数据库服务器端编码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
12:37:16 PM SQL> select * from v$nls_parameters;
  
PARAMETER                                                        VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE                                                     AMERICAN
NLS_TERRITORY                                                    AMERICA
NLS_CURRENCY                                                     $
NLS_ISO_CURRENCY                                                 AMERICA
NLS_NUMERIC_CHARACTERS                                           .,
NLS_CALENDAR                                                     GREGORIAN
NLS_DATE_FORMAT                                                  DD-MON-RR
NLS_DATE_LANGUAGE                                                AMERICAN
<span style="background-color: rgb(255, 255, 0);"><strong><span style="color: rgb(255, 0, 0);">NLS_CHARACTERSET                                                 UTF8</span></strong></span>
NLS_SORT                                                         BINARY
NLS_TIME_FORMAT                                                  HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT                                             DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT                                               HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT                                          DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY                                                $
NLS_NCHAR_CHARACTERSET                                           UTF8
NLS_COMP                                                         BINARY
NLS_LENGTH_SEMANTICS                                             BYTE
NLS_NCHAR_CONV_EXCP                                              FALSE
  
19 rows selected

 

2. 再查下注册表的ORACLE_HOME中NLS_LANG的内容是否相符。

HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraClient10g_home

原先我的内容是:AMERICAN_AMERICA.WE8MSWIN1252

现在改成:AMERICAN_AMERICA.UTF8。

解决,中文显示正常,可以顺利update。

网上还有一些加环境变量的改法。可以尝试。

PL/SQL中文乱码解决方法,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。