歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux Oracle中文字符亂碼問題的解決

1)查看數據庫字符集

03:12:58 SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.ZHS16GBK

2)編輯linux 的NLS_LANG變量

03:13:20 SQL> !

[oracle@oraserv ~]$ pwd

/home/oracle

[oracle@oraserv ~]$ ls -a

.                      cr_dbprod.sql  .gconfd            .ICEauthority  .rman_history     .Xauthority

cr_db.sql      .gnome             logmnr         sel.sql           .xsession-errors

.bash_history          cr_dict.sql    .gnome2            .metacity      sql.log           中國

.bash_logout           Desktop        .gnome2_private    .mozilla       sqlnet.log

.bash_profile          .dmrc          .gstreamer-0.10    .nautilus      .sqlplus_history

.bashrc                .eggcups       .gtkrc-1.2-gnome2  ora.sh         s.sh

close_bak_command.sql  ftp.msg        hot_bak_cmd.sql    ora.txt        start.sh

cold_bak.sql           .gconf         hot_bak.sql        .redhat        .Trash

[oracle@oraserv ~]$ vi .bashrc

# .bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

# User specific aliases and functions

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

".bashrc" 10L, 167C written

本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45427.htm

3)注銷oracle用戶,重新登錄

[oracle@oraserv ~]$ su - oracle

Password: ******

[oracle@oraserv ~]$ env |grep LANG

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

LANG=en_US.UTF-8

[oracle@oraserv ~]$ export ORACLE_SID=prod

[oracle@oraserv ~]$ env |grep LANG

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

LANG=en_US.UTF-8

[oracle@oraserv ~]$ !sql

sqlplus '/as sysdba';

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 8 03:15:59 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

03:16:02 SQL> conn scott/tiger

Connected.

03:16:08 SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

DEPT                           TABLE

EMP                            TABLE

BONUS                          TABLE

SALGRADE                       TABLE

03:16:16 SQL> update dept set dname='財務' where deptno=10;

1 row updated.

03:16:47 SQL> select * from dept;

DEPTNO DNAME          LOC

---------- -------------- -------------

10 財務   NEW YORK

20 RESEARCH       DALLAS

1)查看數據庫字符集

03:12:58 SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.ZHS16GBK

2)編輯linux 的NLS_LANG變量

03:13:20 SQL> !

[oracle@oraserv ~]$ pwd

/home/oracle

[oracle@oraserv ~]$ ls -a

.                      cr_dbprod.sql  .gconfd            .ICEauthority  .rman_history     .Xauthority

cr_db.sql      .gnome             logmnr         sel.sql           .xsession-errors

.bash_history          cr_dict.sql    .gnome2            .metacity      sql.log           中國

.bash_logout           Desktop        .gnome2_private    .mozilla       sqlnet.log

.bash_profile          .dmrc          .gstreamer-0.10    .nautilus      .sqlplus_history

.bashrc                .eggcups       .gtkrc-1.2-gnome2  ora.sh         s.sh

close_bak_command.sql  ftp.msg        hot_bak_cmd.sql    ora.txt        start.sh

cold_bak.sql           .gconf         hot_bak.sql        .redhat        .Trash

[oracle@oraserv ~]$ vi .bashrc

# .bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

# User specific aliases and functions

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

".bashrc" 10L, 167C written

3)注銷oracle用戶,重新登錄

[oracle@oraserv ~]$ su - oracle

Password: ******

[oracle@oraserv ~]$ env |grep LANG

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

LANG=en_US.UTF-8

[oracle@oraserv ~]$ export ORACLE_SID=prod

[oracle@oraserv ~]$ env |grep LANG

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

LANG=en_US.UTF-8

[oracle@oraserv ~]$ !sql

sqlplus '/as sysdba';

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 8 03:15:59 2011

本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45427.htm

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

03:16:02 SQL> conn scott/tiger

Connected.

03:16:08 SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

DEPT                           TABLE

EMP                            TABLE

BONUS                          TABLE

SALGRADE                       TABLE

03:16:16 SQL> update dept set dname='財務' where deptno=10;

1 row updated.

03:16:47 SQL> select * from dept;

DEPTNO DNAME          LOC

---------- -------------- -------------

10 財務   NEW YORK

20 RESEARCH       DALLAS

30 SALES          CHICAGO

40 OPERATIONS     BOSTON

注意:解決問題的原則,客戶端的字符集和oracle 數據庫的字符集保持一致。

30 SALES          CHICAGO

40 OPERATIONS     BOSTON

注意:解決問題的原則,客戶端的字符集和oracle 數據庫的字符集保持一致。

Copyright © Linux教程網 All Rights Reserved