关于oracle逻辑备份exp导出指定表名时需要加括号的问题解析

寻技术 Oracle 2023年09月28日 125

Oracle 的exp、imp、expdp、impdp命令用于数据库逻辑备份与恢复;
exp命令用于把数据从远程数据库server导出至本地,生成dmp文件。
笔者在实操中遇到:

$exp user/pass file=exp.dmp tables = (TABLE1,TABLE3,TABLE3)

返回以下错误信息:

-bash: syntax error near unexpected token `('

后将命令去掉括号,改为以下形式后,命令正常执行。

exp user/pass file=exp.dmp tables = TABLE1,TABLE3,TABLE3

命令运行的Oracle版本信息如下:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

那么问题来了:Oracle exp 命令的 tables 参数值到底需不需要加括号呢?
我换了一个环境简单测试了一下,却发现带括号和不带括号,两种形式的命令都能正常执行
这也算是oracle exp命令的一个小坑吧,特此记录。

关闭

用微信“扫一扫”