由于 ORACLE 的 922 错误,以下的语句失败,ORA-00922: 缺少或无效选项


今天用Orcale数据库,需要导入一个dmp备份文件,结果弄了半天,出了错误也没看出在哪,幸好在网上找了半天还能找到相同的问题,现在问题解决了,特地将解决方法收藏下来~

 

引用网址:http://hi.baidu.com/stq1102/blog/item/a1861ed93690122911df9bc5.html

 

导入导出的dmp文件时出现如下错误
经由常规路径导出由EXPORT:V09.02.00创建的文件
....
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败


再次用indexfile参数导入文件得到对象创建语句,贴到sqlplus中执行发现是nocompress这
个参数的问题,根源是版本问题,导出数据服务器和客户端的版本都是9.2,导入数据服务器
和客户端的版本都是9.0,不过已经不可能再用9.0的客户端去导数据了。所以只能用这个dmp
文件。
开始想到的是修改indexfile选项导出的sql文件,创建表结构,可以完成。
但是再次导入dmp文件发现还是无法继续进行。
这样只能更改dmp文件了,用ultraedit32打开dmp文件,定位nocompress字符,把这些字符
全部改成空格,空格的ascii码是32,16进制就是20,也就是把nocompress所包含的字符全
部改成20即可。
重新导入dmp文件,成功。
不过编辑dmp文件始终是件危险的事情,不知道有没有方法可以在创建表结构以后跳过这些
表结构定义语句直接导入数据的方法。

    我发现数据文件中的“TABLESPACE "USERS" LOGGING NOCOMPRESS”其实都是可以不要的,而它们的存在是导致不同版本数据库文件无法导入的根本原因,将其全部替换为空格,问题即可解决。

    注意:替换时一定要注意空格的数量一定要和替换的文字数量一致,否则会出错的!

 

=============================================

    此上为原文内容,按照方法可以解决问题,在此再细说一下此上说的替换“nocompress”, 可用EmEditor工具打开,选择ascII码打开,文档中的英文是没变的,所以很容易查找替换了。~!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值