Ограничение Oracle 11g data pump на 10 столбцов

Я использую насос данных Oracle для переименования схемы. Во всех (2000) таблицах есть столбец первичного ключа. Например, мне нужно запустить это на всех таблицах:

обновить набор mytable mykey='foo2', где mykey='foo';

Я бы использовал опцию remap_data для expdp, чтобы сделать это. Проблема в том, что есть некоторые столбцы, которые мне нужно переименовать в 10+ столбцах. Кто-нибудь сталкивался с такой проблемой и нашел способ справиться с этим?

Раньше я пытался использовать «Создать таблицу как». Проблема будет заключаться в том, чтобы воссоздать структуру схемы для всех таблиц (представления/триггеры/гранты/индексы/ограничения). Мне известен пакет DBMS_METADATA.GET_DDL. Навскидку выполнение различий схемы базы данных до и после и воссоздание различий кажется уродливым.

Я также пытался вставлять в таблицу без каких-либо ограничений или индексов, поэтому мне нужно было бы только повторно включить ограничения и воссоздать индексы, но я хотел бы попробовать что-то более быстрое.

Я использую Oracle 11.2.0.3.0.


person Joe Devilla    schedule 19.06.2013    source источник
comment
Я не совсем понял... 'update mytable set mykey='foo2' where mykey='foo';'   -  person pahariayogi    schedule 04.02.2014


Ответы (1)


Если я правильно понимаю, ваша реальная проблема (или цель) состоит в том, чтобы «ПЕРЕИМЕНОВАТЬ» схему. Вы выбрали экспорт/импорт (используя другое ИМЯ для переименования) с помощью насоса данных оракула. Затем УДАЛИТЕ старую схему (если вы чувствуете себя избыточной).

Если это так, вот шаги, которые вы можете сделать, чтобы достичь своей цели. Я сделал это успешно на своем окружении DEV. Все объекты (включая PK, FK) были успешно импортированы.

-- Export RMCORE_QA
expdp DIRECTORY=DMPDIR DUMPFILE=RMCORE_QA.dmp SCHEMAS='RMCORE_QA' LOG=RMCORE_QA_EXP_DP.lst  

-- Import using RMCORE_QA3
impdp DIRECTORY=DMPDIR DUMPFILE=RMCORE_QA.dmp REMAP_SCHEMA='RMCORE_QA:RMCORE_QA3' SCHEMAS='RMCORE_QA' LOG=RMCORE_QA_IMP_DP.lst TRANSFORM=OID:N 

Вы также можете сравнивать объекты в ч/б схемах по-

SELECT OBJECT_NAME, STATUS, object_type FROM dba_objects WHERE owner LIKE 'RMCORE_QA'
MINUS
select OBJECT_NAME, STATUS, object_type from dba_objects where owner like 'RMCORE_QA3';

ХТН. Дайте мне знать, если я не понял вашу проблему...

person pahariayogi    schedule 04.02.2014