Oracle exp query条件检索在WINDOWS和LINUX下的命令区别
2011-09-15 12:53
489 查看
今天因为业务需要,运行了EXP的条件导出,发现WINDOWS和LINUX下有些差别,主要区别在于敏感字符,实例如下:
LINUX:
exp us/pass TABLES=\(t_ec_event\) file=/tmp/test.dmp QUERY=\"WHERE eventid =\'40288a2627f491080127fab7f17232b4\'\"
WINDOWS:
exp us/pass@test TABLES=(t_ec_event) file=test.dmp QUERY='WHERE eventid ="40288a2627f491080127fab7f17232b4"'
更多资料如下:
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条件了. 最好是写在一个参数文件里, 这样的话就不用注意这些了.
阅读更多相关文章推荐
- Oracle exp query条件检索在WINDOWS和LINUX下的命令区别
- Oracle exp query条件检索在WINDOWS和LINUX下的命令区别
- Windows中Oracle使用Doc命令完成数据的导出(EXP)/导入(IMP)
- 换行符在Linux和Windows下的区别以及将Linux和windows下的文件的互转的Linux命令:unix2dos, dos2unix
- linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?
- linux和windows命令区别
- 换行符在Linux和Windows下的区别以及将Linux和windows下的文件的互转的Linux命令:unix2dos, dos2unix
- oracle EXP导出一张表时使用query参数指定where条件
- [转]10g以上expdp/impdp命令及区别 Oracle数据导入导出imp/exp命令
- 换行符在Linux和Windows下的区别以及将Linux和windows下的文件的互转的Linux命令:unix2dos, dos2unix
- 换行符在Linux和Windows下的区别以及将Linux和windows下的文件的互转的Linux命令:unix2dos, dos2unix
- Windows DOS窗体下Oracle 数据库的导入导出(IMP/EXP)命令
- linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?
- oracle exp(dmp)命令带过滤条件?
- 换行符在Linux和Windows下的区别以及将Linux和windows下的文件的互转的Linux命令:unix2dos, dos2unix
- 《Oracle EXP工具QUERY参数使用方法和限制条件》-使用场景-对比测试
- linux中su与su -命令的区别
- oracle imp / exp 导入导出命令详解
- Oracle数据导入导出imp/exp命令
- oracle Exp/IMP命令详解