改字符集
c:\>svrmgrl
在svrmgrl中执行:
shutdown
startup mount
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
update props$ set value='ZHS16GB' WHERE NAME='NLS_CHARACTERSET';
update props$ set value='ZHS16GB' WHERE NAME='NLS_NCHAR_CHARACTERSET';
先申明此法很危险,
如果改错了值可能会导致数据库无法打开。×××××××××××××
修改字符集的步骤:
c:\>svrmgrl
在svrmgrl中执行:
connect internal/oracle[@dbname];
shutdown immediate;
startup restrict;
ALTER DATABAE [dbname] CHARACTER SET [SIMPLIFIED CHINESE_CHINA.]ZHS16GBK ;
ALTER DATABAE [dbname] NATIONAL CHARACTER SET [SIMPLIFIED CHINESE_CHINA.]ZHS16GBK ;
alter database [dbname] open;
--shutdown immediate;
--startup;
c:\>svrmgrl
在svrmgrl中执行:
shutdown
startup mount
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
update props$ set value='ZHS16GB' WHERE NAME='NLS_CHARACTERSET';
update props$ set value='ZHS16GB' WHERE NAME='NLS_NCHAR_CHARACTERSET';
先申明此法很危险,
如果改错了值可能会导致数据库无法打开。×××××××××××××
修改字符集的步骤:
c:\>svrmgrl
在svrmgrl中执行:
connect internal/oracle[@dbname];
shutdown immediate;
startup restrict;
ALTER DATABAE [dbname] CHARACTER SET [SIMPLIFIED CHINESE_CHINA.]ZHS16GBK ;
ALTER DATABAE [dbname] NATIONAL CHARACTER SET [SIMPLIFIED CHINESE_CHINA.]ZHS16GBK ;
alter database [dbname] open;
--shutdown immediate;
--startup;
新字符集为原的超集才可以的,依你的情况应该也不行。
而且做这之前要做一次全备份。
如果你是dmp文件,可以修改dmp文件的2,3个字节来与目标数据库统一
where name='NLS_CHARACTERSET';
update props$ set value$='ZHS16CGB231280'
where name='NLS_NCHAR_CHARACTERSET';
具体怎么改,能不能说的详细一点,谢谢了!