Chinaunix首页 | 论坛 | 博客
  • 博客访问: 512281
  • 博文数量: 60
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 507
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-14 19:15
文章分类

全部博文(60)

文章存档

2012年(1)

2011年(7)

2010年(52)

我的朋友

分类: Oracle

2011-05-30 16:00:45

关键字:Oracle IMP/EXP DMP 字符集

第一步:修改数据库的字符集为ZHS16GBK,并使用EXP命令导出DMP文件,导出文件名为:expZHS16GBK.dmp。
第二步:修改数据库的字集集为US7ASCII,并使用EXP命令导出DMP文件,导出文件名为:expUS7ASCII.dmp。
第三步:使用UEStudio/UltraEdit文本编辑工具打开上述两个dmp文件,并利用该文本工具提供的比较功能对上述两个文件进行比较,比较结果如下图所示:

从上图中可以看出,在每个DMP文件的第4行(即:00000030H处)的前两位即对应数据库字符集的编码。注意这里的编码是16进制。我们还需将其转换到10进制后才能使用Oracle提供的命名来确定任意字符集编码所对应的字体集名称。如这里的0354H转换到10进制后即是852(注:可使用系统自带的计算器进行进制转换) 。得到编码后我们可以使用如下的命令确定其所对应的字符集:SELECT nls_charset_name(852) FROM dual;  如下图所示:

至此,以能准确判断出任意给定DMP文件的字符集。另外当你知道字符集的名称时,也可以很方便的确定该字符集所对应的字符集编码。命令如下:select nls_charset_ID('ZHS16GBK') FROM dual;  如下图所示:

版权申明:
   本文属作者原创,欢迎转载,但需注明原文出处并提供原文链接。

阅读(7122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~