免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4142 | 回复: 3
打印 上一主题 下一主题

imp/exp字符集问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-12 12:26 |只看该作者 |倒序浏览
数据库服务器字符集ZH16CGB231280,导出客户端字符集NLS_LANG=US7ASCII,
现恢复该导出文件到服务器,中文成????

请问中文字符集的数据库导出成US7ASCII文件后,还能正常导入中文字符集的数据库中吗?

若可以,如何做?谢谢。

已做过的失败测试:
1,设置客户端NLS_LANG=American_America.US7ASCII
2,设置客户端NLS_LANG=American_America.ZHS16CGB231280
3,create database character set US7ASCII,将数据库暂时改为US7ASCII字符集。
4,修改dmp文件的2、3字节,从US7ASCII改为ZHS16CGB231280
5,设置客户端NLS_LANG=American_America.ZHS16GBK,数据库也为ZHS16GBK字符集。

论坛徽章:
0
2 [报告]
发表于 2006-07-12 16:16 |只看该作者
strong.....


問題描述得很清楚....

現在你已是木已成舟﹐所以是回天無力了....

US7ASCII 是大多數字符集的子集﹐所以當 字符集為 US7ASCII 時可以利用

alter database character set ... 來修改成你想要的字符集﹐但反之則不行。。

所以上面的 alter 操作注定是失敗的..

因為在進行 exp 操作時 字符集與几方面有關,,,  server os / oracle  server /oracle  client 。

三方是有相互轉換的關系...當你利用 client 進行 exp 進﹐生成的 dmp 文件就已完成了這三者字符集之間的
轉換操作﹐因為 ZH16CGB231280 中許多字符編碼在 US7ASCII 是不存在的﹐它會在不識別來標識。

而不識別的結果就是相應的數據用 "﹖﹖﹖"來表示﹐所以你后面所有的嘗試都是徒勞的。因為在exp 完成數據就已生成了部份無效的數據。

因為解決方式是在執行 exp 操作之前就完成 server 與 client site 間的字符集一致性....

论坛徽章:
0
3 [报告]
发表于 2006-07-12 17:26 |只看该作者
楼上你更强,想说的你都说。

论坛徽章:
0
4 [报告]
发表于 2006-07-13 10:01 |只看该作者

感谢zhang_yong88

感谢zhang_yong88的详细的回答,让我有了确定的答案。
呵呵,又一次体会到没有理论指导,实践就会失去方向。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP