Как использовать предложение запроса в 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: неверный номер
Если я удаляю параметр запроса из команды экспорта, он работает нормально. Я попытался изменить параметр версии на другие значения, но все еще получаю ту же ошибку. Столбец BANK_ID в таблице имеет тип данных NVARCHAR2. Я не могу использовать EXP, так как он заблокирован на БД. Версия Oracle - 12.1.0.2.0 для базы данных источника и назначения.
1 ответ
Можете ли вы попробовать изменить свой фильтр запросов следующим образом:
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
Это сработало для меня в Solaris (значение даты, используемое в параметре запроса)
expdp xxxxx /xxxx dumpfile = test_table.dmp logfile = test_table.log tables = scott.TEST directory = DUMDIR query = scott.TEST: \ "где IMG_SAVE_DTTIM \<\ \ '01- \ JAN- \ 19 \ '\"
Для получения дополнительной информации см. Документ ID 277010.1
Гораздо проще использовать файл par.
с участием
... QUERY="где bank_id=43"
Ура, Брайан