我正在使用以下命令通过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。
答案 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