oracle的imp命令导入备份数据

oracle的imp命令导入备份数据

ID:24235506

大小:54.00 KB

页数:4页

时间:2018-11-13

oracle的imp命令导入备份数据_第1页
oracle的imp命令导入备份数据_第2页
oracle的imp命令导入备份数据_第3页
oracle的imp命令导入备份数据_第4页
资源描述:

《oracle的imp命令导入备份数据》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Oracle的imp命令导入备份数据笔者在做项目过程中遇到以下问题,在客户提供的数据库备份文件需要导入到数据库中,以便使用,数据库为Oracle9.1.1,安装在P-00016:不支持要求的字符集转换(从类型830到852)IMP-00000:未成功终止导入使用2进制文件编辑工具,如uedit32。打开导出的dmp文件,获取2、3字节的内容,如0001,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集:SQL>selectnls_charset_name(1)

2、fromdual;NLS_CHARSET_NAME(1)-------------------US7ASCII可以知道该dmp文件的字符集为US7ASCII,如果需要把该dmp文件的字符集换成ZHS16GBK,则需要用NLS_CHARSET_ID获取该字符集的编号:笔者遇到的问题为830到852类型转换错误,进入Oracle的sqlplus,进行以下查询:SQL>selectnls_charset_name(830)fromdual;NLS_CHARSET_NA--------------JA16

3、EUCSQL>selectnls_charset_name(852)fromdual;NLS_CHARSET_NAME----------------ZHS16GBKSQL>SQL>selectnls_charset_id('zhs16gbk')fromdual;NLS_CHARSET_ID('ZHS16GBK')--------------------------852把852换成16进制数,为354,把2、3字节的0001换成0354,即完成

4、了把该dmp文件字符集从us7ascii到zhs16gbk的转化,这样,再把该dmp文件导入到zhs16gbk字符集的数据库就可以了。影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下:NLS_LANG=language_territory.charset.它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:Language指定服务器消息的语言,territory指定服务器的日期和数字格式,charset指定字符集。如:AMERICAN_AMERICA

5、.ZHS16GBK.可以使用以下命令获取字符集名称:SQL>selectuserenv('language')fromdual;USERENV('LANGUAGE')-------------------------------------------------------------------------------SIMPLIFIEDCHINESE_CHINA.UTF8SQL>用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp

6、文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:SQL>selectnls_charset_name(to_number('0354','xxxx'))fromdual;NLS_CHARSET_NAME(TO_NUMBER('0354','XXXX'))----

7、----------------------------------------------------------------------------ZHS16GBKSQL>03033e45.....其中的033e就是字符集对应的值。上文说过,dmp文件的第2第3字节记录了字符集信息,因此直接修改dmp文件的第2第3字节的内容就可以‘骗’过oracle的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如US7ASCII,p文

8、件,所以影响不大。  具体的修改方法比较多,最简单的就是直接用UltraEdit修改dmp文件的第2和第3个字节。比如想将dmp文件的字符集改为ZHS16GBK,可以用以下SQL查出该种字符集对应的16进制代码:  SQL>selectto_char(nls_charset_id('ZHS16GBK'),'xxxx')fromdual;  0354  然后将dmp文件的2、3字节修改为0354即

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。