在Oracle中使用“导出序列”;expdp";

在Oracle中使用“导出序列”;expdp";,oracle,export,datapump,Oracle,Export,Datapump,我正在使用以下命令将序列导出到Oracle中的转储文件: expdp user/pwd DIRECTORY=user_exp DUMPFILE=morder.dmp include=sequence:HR.EMPLOYEES 其中EMPLOYEES是我的序列名。但是,我得到了这个错误: ORA-39001 invalid argument value ORA-39071 Value for INCLUDE is badly formed ORA-00920 invalid relation

我正在使用以下命令将序列导出到Oracle中的转储文件:

expdp user/pwd DIRECTORY=user_exp DUMPFILE=morder.dmp  include=sequence:HR.EMPLOYEES 
其中EMPLOYEES是我的序列名。但是,我得到了这个错误:

ORA-39001 invalid argument value
ORA-39071 Value for INCLUDE is badly formed
ORA-00920 invalid relational operator

有人能指导一下吗?我做错了什么?

如果要从特定架构导出序列,请使用以下命令:

expdp user/pwd SCHEMAS=HR DIRECTORY=user\u exp DUMPFILE=morder.dmp include=sequence:EMPLOYEES

(添加架构并删除序列的所有者)

对象名称子句:

name_子句是可选的。它允许对对象类型中的特定对象进行细粒度选择。它是一个SQL表达式,用作类型的对象名称的筛选器。它由一个SQL运算符和用于比较指定类型的对象名称的值组成。name_子句仅适用于实例具有名称的对象类型(例如,它适用于表,但不适用于GRANT)。它必须用冒号与对象类型分开,并用双引号括起来,因为分隔名称字符串需要单引号

但它也不能包含模式名;它必须是一个对象名。如果您以人力资源用户身份连接到
expdp
,则这是默认设置,您可以执行以下操作:

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
看起来像一个表名;您可能真的需要
员工\u SEQ

... include=sequence:\"= 'EMPLOYEES_SEQ'\" 

以下是“我的环境”中的复制/粘贴:

[oracle@testsrv ~]$ expdp uuu/uuu schemas=uuu DIRECTORY=dir1 DUMPFILE=morder3.dmp  include=sequence

Export: Release 12.1.0.2.0 - Production on Mon Nov 16 22:16:59 2015

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Starting "UUU"."SYS_EXPORT_SCHEMA_01":  uuu/******** schemas=uuu DIRECTORY=dir1 DUMPFILE=morder3.dmp include=sequence 
Estimate in progress using BLOCKS method...
Total estimation using BLOCKS method: 0 KB
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Master table "UUU"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for UUU.SYS_EXPORT_SCHEMA_01 is:
  /home/oracle/morder3.dmp
Job "UUU"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Nov 16 22:17:03 2015 elapsed 0 00:00:03

[oracle@testsrv ~]$ 

谢谢,但我使用此命令收到与上述相同的错误谢谢。我使用相同的用户连接。通过使用您建议的第一个命令,我得到了UDE-00014(“包含”的无效参数),带或不带转义单引号?你在Windows上吗?尝试了expdp hr/pwd DIRECTORY=user\u exp DUMPFILE=morder.dmp include=sequence:“EMPLOYEES”,而我在Windows上。顺便说一句,双引号后和单引号前不应该有“=”符号,就像你之前那样suggested@user3400060-是的,应该有;您没有阅读文档链接或报价吗?您还没有阅读答案的其余部分。双引号需要在Windows中转义,但您尚未这样做。如果没有反斜杠,它将得到UDE-00014。如果你逃避它们(就像我展示的最后两个例子),它不会。不确定这应该显示什么,或者它如何回答这个问题。您没有按照OP的要求筛选序列名称。您的另一个答案是使用schemas子句,但在本例中,您仍然与该用户连接,因此这是多余的。此外,请格式化你的回答,使其更可雷达。