【转帖】一次Windows 下oracle字符集乱码的记录
2011-05-10 22:59
417 查看
http://space.itpub.net/13316/viewspace-468368
国庆后,因停电工作站崩溃, oracle
要恢复了。
在恢复完windows
系统后, 安装oracle8i, 然后就是db recovery。恢复很顺利,可原来table中的中文全乱码。 开始还怀疑在重建control file时字符集选错了或者重建的脚步有问题。
set ORACLE_SID=iga
D:/oracle/ora817/bin/oradim -new -sid IGA -startmode manual -pfile "f:/orabackup/backup/initiga.ora"
startup nomount pfile="f:/orabackup/backup/initiga.ora"
CREATE CONTROLFILE REUSE DATABASE "IGA" NORESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 500
MAXINSTANCES 1
MAXLOGHISTORY 1815
LOGFILE
GROUP 4 'E:/ORACLE/ORADATA/IGA/REDO04.LOG' SIZE 1M,
GROUP 5 'E:/ORACLE/ORADATA/IGA/REDO05.LOG' SIZE 1M,
GROUP 6 'E:/ORACLE/ORADATA/IGA/REDO06.LOG' SIZE 1M
DATAFILE
'E:/oracle/oradata/iga/SYSTEM01.DBF',
'E:/oracle/oradata/iga/RBS01.DBF',
'E:/oracle/oradata/iga/USERS01.DBF',
'E:/ORACLE/ORADATA/IGA/TEMP01.DBF',
'E:/ORACLE/ORADATA/IGA/TOOLS01.DBF',
'E:/ORACLE/ORADATA/IGA/IGA_INDX01.DBF',
'E:/ORACLE/ORADATA/IGA/DR01.DBF',
'E:/ORACLE/ORADATA/IGA/IGA_DATA01.DBF'
CHARACTER SET US7ASCII
;
ALTER DATABASE OPEN ;
查来查去, 脚本没有任何问题; 郁闷呀
耗了2个小时, 中间抽根烟; 灵感来了。
改了注册表:
HKEY_LOCAL_MACHIN / SOFTWARE / ORACLE/ HOME0的
NLS_LANG是: AMERICAN_AMERICA.WE8ISO8859P1
改成: AMERICAN_AMERICA.US7ASCII
重启机器, 问题解决了
总结:
我之所以感觉这个帖子很好,是因为这个帖子很具有典型性:你查询出来,看到的乱码,未在数据库中存放的就是乱码。
因为经过了客户端NLS_LANG的转换。
国庆后,因停电工作站崩溃, oracle
要恢复了。
在恢复完windows
系统后, 安装oracle8i, 然后就是db recovery。恢复很顺利,可原来table中的中文全乱码。 开始还怀疑在重建control file时字符集选错了或者重建的脚步有问题。
set ORACLE_SID=iga
D:/oracle/ora817/bin/oradim -new -sid IGA -startmode manual -pfile "f:/orabackup/backup/initiga.ora"
startup nomount pfile="f:/orabackup/backup/initiga.ora"
CREATE CONTROLFILE REUSE DATABASE "IGA" NORESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 500
MAXINSTANCES 1
MAXLOGHISTORY 1815
LOGFILE
GROUP 4 'E:/ORACLE/ORADATA/IGA/REDO04.LOG' SIZE 1M,
GROUP 5 'E:/ORACLE/ORADATA/IGA/REDO05.LOG' SIZE 1M,
GROUP 6 'E:/ORACLE/ORADATA/IGA/REDO06.LOG' SIZE 1M
DATAFILE
'E:/oracle/oradata/iga/SYSTEM01.DBF',
'E:/oracle/oradata/iga/RBS01.DBF',
'E:/oracle/oradata/iga/USERS01.DBF',
'E:/ORACLE/ORADATA/IGA/TEMP01.DBF',
'E:/ORACLE/ORADATA/IGA/TOOLS01.DBF',
'E:/ORACLE/ORADATA/IGA/IGA_INDX01.DBF',
'E:/ORACLE/ORADATA/IGA/DR01.DBF',
'E:/ORACLE/ORADATA/IGA/IGA_DATA01.DBF'
CHARACTER SET US7ASCII
;
ALTER DATABASE OPEN ;
查来查去, 脚本没有任何问题; 郁闷呀
耗了2个小时, 中间抽根烟; 灵感来了。
改了注册表:
HKEY_LOCAL_MACHIN / SOFTWARE / ORACLE/ HOME0的
NLS_LANG是: AMERICAN_AMERICA.WE8ISO8859P1
改成: AMERICAN_AMERICA.US7ASCII
重启机器, 问题解决了
总结:
我之所以感觉这个帖子很好,是因为这个帖子很具有典型性:你查询出来,看到的乱码,未在数据库中存放的就是乱码。
因为经过了客户端NLS_LANG的转换。
相关文章推荐
- plsql连接oracle查询出现中文乱码,windows系统字符集设置
- oracle采用了WE8MSWIN1252字符集乱码的问题
- oracle7.3生成dmp向oracle9i导入字符集乱码问题
- Oracle使用虚拟表dual一次插入多条记录
- 【转帖】SQL Oracle删除重复记录
- 完整的解决oracle乱码shell处理(当每日导入数据库是英文字符集但需要导入中文字符集并且显示中文)
- oracle client字符集设置 乱码问题
- ORACLE 字符集乱码 修改字符集
- Oracle8I,9I___之字符集修改(解决乱码问题必备)
- oracle中文数据显示乱码--字符集修改方法
- sqlldr 导入乱码,Oracle客户端字符集问题
- 【终结:Oracle用一次忘一次】各种零碎记录
- Oracle 客户端注册表字符集修改,解决数据库导入时乱码
- Oracle中文乱码的解决方法——windows移殖linux平台wchar_t长度不同的解决策略
- Oracle 中文记录 及 乱码 判断 说明
- mysql数据库中文乱码问题,修改mysql字符集(Linux Windows)
- oracle 字符集乱码解决
- ORACLE学习之九 Oracle 字符集的查看和修改 (转帖) 【EXP/IMP 与 字符集|NLS】
- 解决Oracle因安装时未设定字符集导致中文乱码问题
- Oracle 数据库字符集与客户端字符集不一致,导致中文数据显示乱码