歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux Oracle中文字符亂碼問題的解決

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

日期:2017/3/3 16:00:45   编辑:關於Linux

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