Импортировать определенные таблицы из файла дампа Oracle?

У меня есть дамп огромной базы данных оракулов, поэтому импортировать все это невозможно. Я хочу импортировать определенную таблицу с именем X. Проблема в том, что у X есть внешние ключи. Если я импортирую только X, я получу следующую ошибку:

imp user/pass@dbName tables=X  rows=y ignore=Y
ORA-02291: integrity constraint violated - parent key not found

У меня уже есть вся база данных локально (но без данных), я хочу импортировать все таблицы, связанные с X. Как я могу этого добиться? У меня установлен plsql. Мне также нужно знать порядок этих таблиц, чтобы знать, какие из них импортировать в первую очередь.


person Wael    schedule 06.08.2012    source источник


Ответы (2)


Есть несколько вопросов, поэтому я постараюсь ответить один за другим.

ORA-02291: integrity constraint violated - parent key not found

Нетрудно догадаться об этом, потому что, как вы знаете, у вас нет родительской записи для таблицы X. Кстати, вы также можете использовать флаг CONSTRAINTS=N, потому что у вас уже есть db, как вы сказали.

«Я хочу импортировать все таблицы, связанные с X. Как я могу этого добиться?»

Нет другого выхода, кроме как найти все зависимости вручную (или использовать таблицы словаря данных user_cons_columns, user_constraints и т. Д. Для поиска) и также импортировать эти таблицы. Подумайте об этом, если вы этого не сделаете. Вы нарушите целостность своих данных. Если вам по-прежнему нужны эти данные в таблице X без зависимостей, отключите ограничения и затем импортируйте. Но вы не сможете снова включить свое ограничение, и я не знаю, что вы хотите делать с поврежденными данными.

«Мне также нужно знать порядок этих таблиц, чтобы знать, какие из них импортировать в первую очередь».

Отключите ограничения перед импортом, а затем включите их после импорта. В этом случае вам не нужно беспокоиться о порядке.

person Parvez    schedule 21.03.2013

Вы можете отключить все ограничения БД перед импортом и снова включить их после этого. Видеть:

person Jens Hoffmann    schedule 06.08.2012