oracle中文乱码

来源:互联网 发布:白苹果 保留数据 编辑:程序博客网 时间:2024/06/06 01:15
在Redhat上安装Oracle 10g没有设定字符集,采用的是操作系统默认字符集:WE8ISO8859P1,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。1.数据库全备2.查询当前字符集SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';PARAMETER                                VALUE---------------------------------------- ----------------------------------------NLS_CHARACTERSET                         WE8ISO8859P13.关闭数据库SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.4.启动数据库到mount状态SQL> startup mountORACLE instance started.Total System Global Area  205520896 bytesFixed Size                  1266608 bytesVariable Size             100666448 bytesDatabase Buffers          100663296 bytesRedo Buffers                2924544 bytesDatabase mounted.5.限制sessionSQL> alter system enable restricted session;System altered.6.查询相关参数并修改SQL> show parameter job_queue_processes;  NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------job_queue_processes                  integer     10SQL> show parameter aq_tm_processes; NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------aq_tm_processes                      integer     0SQL> alter system set job_queue_processes=0;System altered.7.打开数据库SQL> alter database open;Database altered.8.修改字符集SQL> alter database character set ZHS16GBK;alter database character set ZHS16GBK*ERROR at line 1:ORA-12712: new character set must be a superset of old character set出现错误提示,新字符集必须是老字符集的超集,也就原来字符集是新字符集的子集,可以再Oracle官方文档上查询字符集包含关系。下面使用Oracle内部命令internal_use,跳过超集检查,生产环境不建议使用此方法。SQL> alter database character set internal_use ZHS16GBK;          Database altered.9.查询当前字符集SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';PARAMETER                                VALUE---------------------------------------- ----------------------------------------NLS_CHARACTERSET                         ZHS16GBK10.关闭数据库SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.11.启动数据库到mount状态SQL> startup mountORACLE instance started.Total System Global Area  205520896 bytesFixed Size                  1266608 bytesVariable Size             100666448 bytesDatabase Buffers          100663296 bytesRedo Buffers                2924544 bytesDatabase mounted.12.将相关参数改回原来值SQL> alter system set job_queue_processes=10;System altered.13.打开数据库SQL> alter database open;Database altered.
0 0