修改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
双击NLS_LANG, 修改其值为UTF8 然后 运行-->Cmd -- > sqlplus--> 以高级管理员的权限登录进去 sqlplus sys/oracle as sysdba --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了;
经过第二次测试,不用修改注册表似乎也可修改成功!!
修改成功!
|
|