oracle10安装设置字符集,Linux Enterprise 5安装Oracle10g,Oracle10g字符集设置问题

1、检查服务器上Oracle数据库的字符集

sqlplus /nolog

SQL>  connect / as sysdba

连接成功.

SQL>  desc  props$

列名                                                    可空值否      类型

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

NAME                                                        NOT  NULL  VARCHAR2(30)

VALUE$                                                                      VARCHAR2(2000)

COMMENT$                                                                  VARCHAR2(2000)

SQL>  col  value$  format  a40

SQL>  select  name,value$  from  props$;

NAME                                                      VALUE$

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

DICT.BASE                                            2

NLS_LANGUAGE                                      AMERICAN

NLS_TERRITORY                                    AMERICA

NLS_CURRENCY                                      $

NLS_ISO_CURRENCY                              AMERICA

NLS_NUMERIC_CHARACTERS                  .,

NLS_DATE_FORMAT                                DD-MON-YY

NLS_DATE_LANGUAGE                            AMERICAN

NLS_CHARACTERSET                              ZHS16GBK

NLS_SORT                                              BINARY

NLS_CALENDAR                                      GREGORIAN

NLS_RDBMS_VERSION                            7.3.4.0.0

GLOBAL_DB_NAME                                  ORACLE.WORLD

EXPORT_VIEWS_VERSION                      3

NLS_CHARACTERSET和NLS_CHAR_CTERSET这个参数应该是ZHS16GBK,如不是,改为它。

SQL*Plus中修改方法:

SQL>  update  props$  set  value$='ZHS16GBK'  where  name='NLS_CHARACTERSET';

2、确认字符集是否修改的不彻底。

SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,

DECODE(TYPE#, 1,

DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'),

9,

DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),

96,

DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),

112,

DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN

FROM SYS.COL$

WHERE CHARSETFORM IN (1, 2)

AND TYPE# IN (1, 9, 96, 112);

3、如果上面的查询的确显示有多个字符集的设定,则进行如下处理:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

COL VALUE NEW_VALUE CHARSET

SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';

COL VALUE NEW_VALUE NCHARSET

SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';

--INTERNAL_USE是没有写在文档中的参数,用以强制完成字符集一致化

ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;

ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;

SHUTDOWN IMMEDIATE;

STARTUP;

-- 再次启动数据库一遍

SHUTDOWN IMMEDIATE;

STARTUP;

**************注意****************

本人在使用上面的方法设置以后Oracle10g可以正常使用,在导入dmp,sql文件的时候则需要在Linux中做如下设置

sql文件,dmp文件在导入oracle的时候需要设置字符集

export LANG=zh_CN.GBK    //这个是linux的字符集设置

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK   //这个是oracle的字符集设置

posted on 2008-09-12 09:09 sunfruit 阅读(2232) 评论(0)  编辑  收藏 所属分类: 数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值