关于linux命令行中执行oracle导出expdp命令中包含转义字符的问题

风之刀 发布于 2014/11/21 15:42
阅读 2K+
收藏 0
expdp导出数据库中某一个表,使用以下命令是可以正确执行的,里面用到的斜杠转义,这是oracle中规定的
expdp oracle/oracle directory=oradata_bak dumpfile=oradata_bak.dp.dmp include=TABLE:\"IN \(\'USERINFO\'\)\",
上面命令在oracle用户下中在命令行可以执行

现在我需要在root用于下执行上面命令,正常的执行方法是
runuser - oracle -c "expdp oracle/oracle directory=oradata_bak dumpfile=oradata_bak.dp.dmp"

现在问题来了,由于我需要在命令中加上双引号,include=TABLE:\"IN \(\'USERINFO\'\)\"
但是采用runuser - oracle -c "命令" ,这个命令中也包含了双引号
如果我这么执行,root环境下
runuser - oracle -c "expdp oracle/oracle directory=oradata_bak dumpfile=oradata_bak.dp.dmp include=TABLE:\"IN \(\'USERINFO\'\)\" "
会提示
ORA-39001: 参数值无效
ORA-39071: INCLUDE 值的格式错误。
ORA-00936: 缺失表达式


如果把外围的双引号改成单引号也不行,命令就错了

有没有哪位碰到这种情况的,帮忙指导一下,谢谢了!
加载中
返回顶部
顶部