社区
Oracle 高级技术
帖子详情
数据库字符集zhs16cgb231280,导出时用us7ascii导出,如何再导回去!
logpushpin
2003-08-04 10:44:31
oracle7.3.4数据库, 字符集是zhs16cgb231280, 但是在备份的时候,却用us7ascii导出. 结果:无论将导出的dmp导入到zhs16cgb231280的数据库中或者是us7ascii的数据库中,导入后中文显示的都是乱码! 如何解决? 请高手指教,谢谢!!
...全文
113
5
打赏
收藏
数据库字符集zhs16cgb231280,导出时用us7ascii导出,如何再导回去!
oracle7.3.4数据库, 字符集是zhs16cgb231280, 但是在备份的时候,却用us7ascii导出. 结果:无论将导出的dmp导入到zhs16cgb231280的数据库中或者是us7ascii的数据库中,导入后中文显示的都是乱码! 如何解决? 请高手指教,谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BlueskyWide
2003-08-04
打赏
举报
回复
在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_LANG,则“新建”->“字符串”,重命名为“NLS_LANG”,并赋值为zhs16cgb231280,再导出时不需要重启Oracle。
logpushpin
2003-08-04
打赏
举报
回复
感谢,不过我的那个dmp是在数据库字符集是zhs16cgb231280, 但是导出却用的us7ascii导出的,显然这样做dmp就有问题
kerisyml
2003-08-04
打赏
举报
回复
由于业务原因,需要将一英文字符集(American_America.WE8ISO8859P1)的数据库DMP文件导入到一中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的数据库中。由于字符集的料,终于解决了问题不同,需要将中文字符集的数据库环境改变成英文字符集。遇到很多的麻烦,通过在网上查找资。在这个过程中,发现网友们也有同样的问题,为了,让大家在以后能够顺利的完成此类工作,现将把我导入成功的过程写出来,与大家共享。
一、系统环境:
导出环境:
主机:Compaq 小型机
操作系统:Unix
数据库:oracle8.1.7{英文字符集(American_America.WE8ISO8859P1)}
导入环境:
主机:普通Pc 机
主频:PIII750
内存:192M
操作系统:Windows 2000 server
数据库:Oracle8.1.7中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
注:导出过程省略
二、导入过程
1、 将win2000系统中的oracle注册表
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]中的[NLS_LANG]键值
“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”改成
“American_America.WE8ISO8859P1”
2、 用system用户的身份,在Sql-plus 下执行以下语句:
update sys.props$ set value$='WE8ISO8859P1' where name='NLS_CHARACTERSET';
update sys.props$ set value$='WE8ISO8859P1' where name='NLS_NCHAR_CHARACTERSET';
commit;
3、 重新启动oracle
4、 开始导入数据库
userid = 用户名/密码@连结串
buffer = 60000
log = c:\dmp.log
file = c:\导入数据文件名称.dmp
fromuser = 用户名
touser = 用户名
这里要注意,要确保导入的表空间和用户已经建立并与导出文件一至,还要确认用户是否拥有dba的权限,否则有可能会影响导入数据的完整。
5、 检查导入效果,在目前环境下,测试数据是否正确,是否有乱码,是否有未成功导入的表和其他触发器、过程和函数等信息。确认导入没有问题后,进入到下一步。
6、 将win2000下oracle字符集环境恢复成中文字符集。
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]中的[NLS_LANG]键值
“American_America.WE8ISO8859P1” 改回
“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
7、 用system用户的身份,在Sql-plus 下执行以下语句:
update sys.props$ set value$=' ZHS16GBK ' where name='NLS_CHARACTERSET';
update sys.props$ set value$=' ZHS16GBK ' where name='NLS_NCHAR_CHARACTERSET';
commit;
8、 重新启动数据库。
检查你的数据库中的数据,如果没有乱码,而且你的程序能够在这个环境下正常运行,那么恭喜你,你也成功了!!
LGQDUCKY
2003-08-04
打赏
举报
回复
你的操作系统是98的或2000话,
就得修改两个地方,修改数据库字符级和修改注册表字符信息。
数据库字符级是修改SYS.PROPS$注册表是修改
HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG,
把他修改成你备份文件里的字符级
gladness
2003-08-04
打赏
举报
回复
打开一个cmd窗口
set NLS_LANG=american_america.us7ascii
在此窗口中接着运行imp
看看行不行
数据库
服务器
字符集
更改步骤
首先设定客户端的
字符集
,必须以ZHS16GBK的
字符集
导出
,然后才能在更改失败后顺利倒入新建的库。 #setenv NLS_LANG "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"; #stty -istrip -parity cs8; #setenv LANG zh 拟在/sybdata...
oracle
数据库
表
字符集
,Oracle
数据库
字符集
介绍
Oracle
数据库
字符集
介绍子集和超集的概念如果
字符集
a的所有编码存在于
字符集
b中,并且同一个编码在
字符集
a编码和
字符集
b中代表同样的字符,则称b是a的超级,a为b的子集,如
us7
ascii
为
zhs16c
gb2312
80
的子集,值得注意...
US7
ASCII
字符集
转换为ZHS16GBK
我们知道在
导出
文件中,记录着
导出
使用的
字符集
id,通过查看
导出
文件头的第2、3个字节,我们可以找到16进制表示的
字符集
ID,在Windows上,我们可以使用UltraEdit等工具打开dmp文件,查看其
导出
字符集
:: ...
关于ORACLE
数据库
中汉字显示乱码问题的探讨
用于汉字显示的
字符集
主要有
ZHS16C
GB2312
80
、ZHS16GBK、
US7
ASCII
和UTF-8等。
字符集
同时存在于服务器端和客户端。服务器端
字符集
是在安装ORACLE时指定的,
字符集
登记信息存储在ORACLE
数据库
字典的V$NLS_PARAMETERS表...
查看和修改Oracle
数据库
字符集
这样做理论上也仅 是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些
字符集
,如
US7
ASCII
,WE8ISO8859P1,
ZHS16C
GB2312
80
,ZHS16GBK基本都可以改。因为改的只是dmp文件...
Oracle 高级技术
3,491
社区成员
18,714
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章