Oracle 10g -- 修改DB的编码

时间:2023-03-09 18:56:42
Oracle 10g -- 修改DB的编码

修改DB的原因是:因为我的DB不支持中文,所以每当我向数据库表中插入一条数据的时候,中文就都变了类似于“?(是反问号)”的乱码,为了能顺利插入成功,故做了此次修改;

系统:windows XP 英文版

Oracle DB version: 10.2.0.1.0

获取DB的最初的编码: select userenv('language') from dual;

    AMERICAN_AMERICA.WE8MSWIN1252

修改方法(以改成UTF8为例)

修改注册表:

regedit--->打开注册表:
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/key_XE
Oracle 10g -- 修改DB的编码

双击NLS_LANG, 修改其值为UTF8

Oracle 10g -- 修改DB的编码

然后 运行-->Cmd -- > sqlplus-->

以高级管理员的权限登录进去

conn as sysdba/

username: sysdba;

password: admin(以个人电脑为主);

首先查看一下你DB的编码 select userenv('language') from dual;

然后一句一句执行以下代码:

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use AL32UTF8(或者是UTF8);
SQL> shutdown immediate;
SQL> startup
SQL>alter system disable restricted session;
注意: 执行完别忘记了执行最后一句,否则可能后续很多事情都做不了
以上如果都执行成功后,可再次查询DB编码 select userenv('language') from dual;
我的查询结果为:AMERICAN_AMERICA.AL32UTF8
证明DB的编码已改为UTF-8了;
经过第二次测试,不用修改注册表似乎也可修改成功!!
修改成功!