linux oracle查询乱码问题,Linux环境解决Oracle 中文乱码

本文详细介绍了在Linux环境中解决Oracle数据库中文乱码问题的步骤,包括查看数据库字符集设置、编辑NLS_LANG变量,以及通过注销并重新登录用户来确保客户端字符集与数据库一致。最终通过实例演示了如何验证和应用这些操作。
摘要由CSDN通过智能技术生成

Linux环境解决Oracle 中文乱码

1)查看数据库字符集

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

USERENV('LANGUAGE')

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

AMERICAN_AMERICA.ZHS16GBK

2)编辑linux 的NLS_LANG变量

[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

[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

通过sqlplus验证:

[oracle@oraserv ~]$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

30 SALES          CHICAGO

40 OPERATIONS     BOSTON

注意:解决问题的原则,客户端的字符集和oracle 数据库的字符集保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值