对象名称子句必须用双引号括起来,并且必须有一个关系运算符:
name_clause 是可选的。它允许在对象类型中细粒度地选择特定对象。它是一个 SQL 表达式,用作类型对象名称的过滤器。它由一个 SQL 运算符和与指定类型的对象名称进行比较的值组成。name_clause 仅适用于其实例具有名称的对象类型(例如,它适用于 TABLE,但不适用于 GRANT)。它必须用冒号与对象类型分隔并用双引号括起来,因为需要用单引号来分隔名称字符串。
但它也不能包含模式名称;它必须是一个对象名称。如果您以expdp
HR 用户身份连接,那么无论如何这都是默认设置,您可以执行以下操作:
expdp hr/pwd DIRECTORY=user_exp DUMPFILE=morder.dmp include=sequence:"= 'EMPLOYEES'"
如果您以不同的特权用户身份连接,则需要包含该schemas
子句,否则它将无法找到对象:
expdp system/pwd DIRECTORY=user_exp DUMPFILE=morder.dmp schemas=hr include=sequence:"= 'EMPLOYEES'"
根据您的操作系统,您可能需要逃避各种事情:
根据您的操作系统,在为此参数指定值时使用引号可能还需要您使用转义字符。Oracle 建议您将此参数放在参数文件中,这样可以减少命令行中可能需要的转义字符的数量。请参阅“在数据泵命令行上使用引号”。
在 Linux/bash 上,include 子句最终为:
... include=sequence:\"= \'EMPLOYEES\'\"
双引号和单引号都被转义了。从上一个问题您可能在 Windows 上,我只需要转义双引号:
... include=sequence:\"= 'EMPLOYEES'\"
最后,EMPLOYEES
看起来像一个表名;你可能真的想要EMPLOYEES_SEQ
:
... include=sequence:\"= 'EMPLOYEES_SEQ'\"