欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数据的导入导出

最编程 2024-02-21 13:38:55
...

(4)Oracle的exp工具有一个query参数可以指定一个where条件来有条件地导出记录, 对于不经常用这个选项的人来说, 经常会遇到这样的错误:

LRM-00112: multiple values not allowed for parameter 'query'

EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help
EXP-00000: Export terminated unsuccessfully
    这是因为在where条件中一般都会有空格, 而命令行下就会被释成几个命令行参数, 需要用单引号或双引号将整个where条件括起来, 就可以了. 在Windows下, 如何指定query参数:
exp ... query='where deptno=10'
exp ... query='where deptno=''10'''
exp ... query='where deptno"<"10'
    在Solaris(C shell)下, 如何指定query参数:
exp ..... query=\"where col1 \< 1000\"
exp ..... query=\"where col1 \< '1000'\"
    其他Unix平台的应当和Solaris下的一样, 我自已也经常搞错. 在上面的例子中已经说明了如何在query值中使用单引号, 因此在看完这篇后, 就应当可以写出正确的where条件了. 最好是写在一个参数文件里, 这样的话就不用注意这些了.

(5) EXP数据时出现exp-00003错误

原因:用低版本导高版本数据库数据造成的

EXP导出10203数据的时候,出现了EXP-3错误:EXP-00003: no storage definition found for segment(41, 6024)
查询了一下METALINK,发现9205版本之前的EXP客户端,导出9205以上版本的数据时,如果表中包含LOB字段,或者表中的EXTENT超过一个,则会导致EXP-00003错误。
    造成问题的原因是由于Oracle在9205及以上版本中,解决了一个查询DBA_SEGMENTS的BYTES/EXTENTS/BLOCKS列速度缓慢的错误。而解决这个bug的代价就是9204及以下版本在导出高版本数据时会碰到EXP-3这个错误。
具体的相关信息可以查询METALINK:
Bug 2948717 : Queries against DBA_SEGMENTS can be slow accessing BYTES/BLOCKS/EXTENTS columns;
Bug 3593227 "EXP-3 WHEN EXPORTING A TABLE WITH MORE THAN 1 EXTENT USING EXP BELOW 9.2.0.5"
Bug 3784697 "EXPORT OF LOB FROM 9205 WITH PRE-9205 EXP GIVES EXP-3 (NO STORAGE DEF FOUND)"
解决问题的方法到是不算复杂:
  如果导出不包含LOB字段,那么可以将EXP语句中的COMPRESS参数设置为Y,重新执行导出即可。
  如果包含LOB字段,或者上面的方法无效,那么需要对导出库修改exu9tne视图。在导出完成后,再将该视图恢复。

具体参考 http://blog.sina.com.cn/s/blog_4b1c9e1201000a86.html
 
(6) 版本不当导致的exp出错:
在一次exp导出操作时遇到了ORA-00904,ORA-01003错误,多方搜索也几无所得。
  EXP-00008: ORACLE error 1003 encountered

服务器和客户端两边连接都很正常,百思不得解,难道是导出版本的问题?不至于啊,1024导出1023的库,之前操作过,没发现过这个问题,而且看提示不像啊,众所周知版本错误会提示ORA-06550。实在无法,最后报着死马当活马医的想法尝试换了一个同版本的客户端执行exp,结果顺利执行。

后来又经过多番尝试,发现出错的均是含lob字段的表,看来一方面oracle在执行exp时对版本的处理非常严格,即使大版本相同,小版本有略微差异也会导致exp时报错,另一方面是处理规则也存在版本延续的情况,如果不涉及到处理规则的变化,即使exp时客户端版本与服务器不符,导出时也有可能不报错(运气好的话)。

将此次事件记录下来以加强记忆,以后执行导出还是都尽可能确保版本一致吧(起码exp的客户端版本不能高于服务器)。
 
 
 
 
 
 
 
 本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/271425,如需转载请自行联系原作者