如何在EXPDP中使用查询子句

时间:2018-12-11 07:21:03

标签: oracle oracle12c expdp

我正在使用以下命令通过EXPDP导出表数据

nohup expdp \"/ as sysdba\" directory=DATA_PUMP_DIR dumpfile=EXP.dmp logfile=EXP.log version=11.2.0.4 TABLES=CRM.CATEGORIES QUERY='"where bank_id='43'"'

出现以下错误

  

ORA-31693:表数据对象“ CRM”。“类别”加载/卸载失败   并由于错误而被跳过:

     

ORA-29913:执行ODCIEXTTABLEPOPULATE标注时发生错误

     

ORA-01722:无效的数字

如果我从导出命令中删除了查询参数,它将正常工作。我尝试将version参数更改为不同的值,但仍然收到相同的错误 表中的BANK_ID列为NVARCHAR2数据类型。 我无法使用EXP,因为它在数据库上被阻止。源数据库和目标数据库的Oracle版本均为12.1.0.2.0。

3 个答案:

答案 0 :(得分:0)

您是否可以尝试通过这种方式更改查询过滤器:

QUERY=(CRM.CATEGORIES:"WHERE bank_id='43'")

请注意:

修改 我设法使它以这种方式工作:

expdp \"/ as sysdba\" dumpfile=DATA_PUMP_DIR:test.dmp tableS=CRM.CATEGORIES QUERY='(CRM.CATEGORIES:"WHERE bank_id=43")'   logfile=DATA_PUMP_DIR:test.log

答案 1 :(得分:0)

使用par文件,容易得多

使用

... QUERY =“ where bank_id = 43”

欢呼 布莱恩

答案 2 :(得分:0)

这在Solaris中对我有用(查询参数中使用的日期值)

expdp xxxxx / xxxx dumpfile = test_table.dmp日志文件= test_table.log表格= scott.TEST目录= DUMDIR query = scott.TEST:\“其中IMG_SAVE_DTTIM \ <\ \ '01-\ JAN- \ 19 \'\ “

有关更多信息,请参阅文档ID 277010.1