Назад | Перейти на главную страницу

Пропустить вставки для одного стола с oracle imp

Я делаю оракула, а в дампе есть большая таблица, которую я хотел бы только создать, но не вставлять в нее строку.

Это возможно ?

Опыт был сделан на 10.2.0.4. Занимаюсь бесом на XE (10.2.0.1).

Вы использовали классические утилиты экспорта и импорта? Или новые версии DataPump? Судя по вашим ссылкам на «exp» и «imp», а не на «expdp» и «impdp», вы использовали классические версии, а не версии DataPump. Если так, это существенно уменьшает ваши возможности.

В классических утилитах экспорта и импорта параметр ROWS = N применяется ко всем таблицам. Таким образом, не существует единой командной строки для «импорта всех данных во все таблицы, кроме одной». Однако вы можете выполнить ряд операций импорта

  • Сделайте первый импорт с ROWS = N, чтобы импортировать структуру всех таблиц, но не данных.
  • Сделайте второй импорт с ROWS = Y и TABLES = (<<list of all other tables>>)

Поскольку вы уже выполнили первый импорт, вы можете сгенерировать список таблиц для второго импорта, просто запросив DBA_TABLES (или ALL_TABLES или USER_TABLES) просмотр словаря данных.

Конечно, это является.

«imp» имеет для этого параметр «ROWS». Если вы установите ROWS = N в свою командную строку, импорт пропустит вставку данных.

Изменить: он будет пропускать строки для всех таблиц. Если вы хотите пропустить строки только для одной таблицы, я думаю, вам придется выполнить импорт в два отдельных шага. Один для импорта только этой конкретной таблицы, один шаг для остальных таблиц.