我使用以下命令将我的序列导出到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
有人可以指导一下吗?我做错了什么?
答案 0 :(得分:2)
对象名称子句has to be enclosed in double-quotes, and has to have a relational operator:
name_clause是可选的。它允许在对象类型中细粒度选择特定对象。它是一个SQL表达式,用作对类型的对象名称的过滤器。它由SQL运算符和要与之比较指定类型的对象名称的值组成。 name_clause仅适用于其实例具有名称的对象类型(例如,它适用于TABLE,但不适用于GRANT)。它必须用冒号与对象类型分开并用双引号括起来,因为需要使用单引号来分隔名称字符串。
但它也不能包含模式名称;它只需要是一个对象名称。如果您作为HR用户连接到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建议您将此参数放在参数文件中,这样可以减少命令行上可能需要的转义字符数。请参阅"Use of Quotation Marks On the Data Pump Command Line"。
在Linux / bash上,include子句最终为:
... include=sequence:\"= \'EMPLOYEES\'\"
双引号和单引号都被转义。从上一个问题开始,您可能在Windows上,我只需要转义双引号:
... include=sequence:\"= 'EMPLOYEES'\"
最后,EMPLOYEES
看起来像一个表名;你可能真的想要EMPLOYEES_SEQ
:
... include=sequence:\"= 'EMPLOYEES_SEQ'\"
答案 1 :(得分:0)
如果您想从特定SCHEMA导出序列,请使用:
expdp user / pwd SCHEMAS = HR DIRECTORY = user_exp DUMPFILE = morder.dmp include = sequence:EMPLOYEES
(添加SCHEMAS并删除序列的所有者)
答案 2 :(得分:0)
以下是我的环境中的复制/粘贴:
[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 ~]$