powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Импорт
16 сообщений из 16, страница 1 из 1
Импорт
    #32073787
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При импорте данных в таблицу выдает ORA-02291: integrity constraint (FIS.NOMEN_PHYS_FORM_FK) violated - parent key not found.
Что делать?
Экспорт данных данной таблицы делал с параметрами INDEXES=N CONSTRAINTS=N GRANTS=N
...
Рейтинг: 0 / 0
Импорт
    #32073838
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если импорт таблиц и создание первичных ключей прошел без ошибок, то, скорее всего, вы сделали экспорт схемы, одна из таблиц которой ссылается на таблицу в другой схеме, которой нету.
...
Рейтинг: 0 / 0
Импорт
    #32073856
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Две идентичные БД не разных машинах. Из таблицы одной БД перееношу данные в другую БД.
...
Рейтинг: 0 / 0
Импорт
    #32073859
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вы делаете импорт одной таблицы ?
...
Рейтинг: 0 / 0
Импорт
    #32073878
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да импорт в одну таблицу и только данных, таблица в схеме уже есть.
...
Рейтинг: 0 / 0
Импорт
    #32074035
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно попробовать использовать конструкцию EXCEPTIONS INTO... для этой таблице

ALTER TABLE <table_name>
ADD CONSTRAINT ...
EXCEPTIONS INTO <errors_table>

при возникновении exception ошибочные записи попадут в таблицу <errors_table>...


P.S. Скорее всего, все-таки, в этих двух базах (точнеее, в таблицах) разные данные...
...
Рейтинг: 0 / 0
Импорт
    #32074059
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица куда делаю импорт пустая.
...
Рейтинг: 0 / 0
Импорт
    #32074076
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные из таблицы <table_name> базы <B1> переносятся в базу <B2>. При этом, записи таблицы ссылаются на записи др.таблицы <table_name_fk>(какой именно, можно определить по constraint'у FIS.NOMEN_PHYS_FORM_FK ).

Но, в базе <B2> отсутствуют некоторые записи в таблице <table_name_fk>, на которые есть ссылки. Поэтому импорт и завершается с ошибкой.


Т.к., таблица может быть достаточно большой, я вам и предложил способ определения тех записей, которые приводят к ошибке.
...
Рейтинг: 0 / 0
Импорт
    #32074087
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача вообще стоит такая:
1. БД1 с одной схемой.
2. Создана БД2.
3. Из БД1 произведен экспорт схемы без данных (rows=n).
4. В БД2 произведен импорт данной схемы.
5. Теперь требуется из части таблиц БД1 перенести все их данные в соответствующие таблицы БД2. Остальные таблицы должны быть пустыми.
...
Рейтинг: 0 / 0
Импорт
    #32074091
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вроде уже было обьяснено, что в дочерней таблице, которую ты импортируешь есть внешний ключ на таблицу, в которой:
1) нет записей вообще, потомучто ты таблицу вообще не импортируешь
2) нет родительской записи
3) родительская таблица в дампе есть, запись тоже есть. Но дочерняя таблица импортируется раньше.

"Экспорт данных данной таблицы делал с параметрами INDEXES=N CONSTRAINTS=N GRANTS=N"

"3. Из БД1 произведен экспорт схемы без данных (rows=n)."

Значит констрейны сели когда делал экспорт схемы.

То что констрейн в базе есть видно из ".NOMEN_PHYS_FORM_FK"
...
Рейтинг: 0 / 0
Импорт
    #32074198
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал отключить constraints на эти таблицы, затем импортировать данные, все прошло нормально но когда стал включать constraints то выдает ошибку ORA-02266.
Вообще можно ли решить такую задачу???
...
Рейтинг: 0 / 0
Импорт
    #32074205
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз попробую обьяснить в чём ошибка(как я это понимаю):

1) При импорте вначале происходит импорт всех таблиц и только потом импорт ограничений(констрейнтов), поэтому при любом иморте таблиц - не должно быть никаких сообщений связанных с ограничениями
2)Поскольку ты делал импорт два раза: в первый раз ты просто создал структуру, но и вместе с тем добавил ограничения, а во второй импорт раз ты уже добавлял таблицы, то естественно, что во втором импорте будут ошибки

Отсюда вывод:
1) Когда создаёшь экспорт структуры отключи ограничения CONSTRAINTS=N
2) Когда создаёшь экспорт данных включи всё что надо, можно полный экспорт
3) Сделай импорт структуры
4) Сделай импорт данных для конкретных таблиц
...
Рейтинг: 0 / 0
Импорт
    #32074238
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы, видимо, все-таки не понимаете, что такое "внешний ключ"...
Есть две таблицы - <Главная> и <Подчиненная>.
<Подчиненная> таблица ССЫЛАЕТСЯ на <Главную> (эту ссылку и описывает констрейнт). Порядок заполнения этих таблиц такой: сначала - запись в таблицу <Главная> и только потом в табл. <Подчиненная>. Вы же пытаетесь сделать все с точность "до наоборот" !!!

Следовательно
1. вы делаете импорт сначала Главной таблицы, затем Подчиненной, либо
2. делаете "недееспособным" констрейнт (напр., удаляете его) и продолжаете "радоваться жизни".

Понятно ?

P.S. Кстати, на практике, когда нужно сделать импорт данных из ЧАСТИ таблиц, а структуру сохранить всю, СНАЧАЛА импортируют таблицы, а ПОТОМ, по верх, накатывают дамп без данных.
...
Рейтинг: 0 / 0
Импорт
    #32074464
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Делаю экспорт схемы пользователя из БД1 EXP73 USERID=/ ROWS=N DIRECT=Y OWNER=<owner> FILE=G:\ORACLE\EXPORT\SID\SID.DMP LOG=G:\ORACLE\LOGS \SID\FROM_SID.EXP

2. Делаю импорт этой схемы в БД2 imp73 userid= / fromuser=<owner> touser=<owner> ignore=y grants=n buffer=1000000 file=g:\oracle\export\sid\sid.dmp log=g:\oracle\logs\sid\sid.imp

3. Делаю экспорт данных нескольких таблиц из БД1 exp73 userid=/ direct=y INDEXES=N CONSTRAINTS=N GRANTS=N tables=(............) file=e:\oracle\export\sid\sid_1.dmp log=e:\oracle\logs\sid\sid_1.exp

4. Делаю импорт этих данных в БД2 imp73 userid=/ fromuser=<owner> touser=<owner> buffer=1000000 grants=n indexes=n tables=(.........) ignore=y file=g:\oracle\export\sid\sid_1.dmp log=g:\oracle\logs\sid\sid_1.imp

Вот вся последовательность моих действий.
...
Рейтинг: 0 / 0
Импорт
    #32074466
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RifNik
Как я понял надо сначаль делать экспорт/импорт таблиц с данными и параметрами параметров INDEXES=N CONSTRAINTS=N GRANTS=N затем экспорт/импорт схемы пользователя с параметрами INDEXES=Y CONSTRAINTS=Y ROWS=N IGNORE=Y
...
Рейтинг: 0 / 0
Импорт
    #32074499
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...можно и так...


P.S. Так вы обнаружили записи, приводящие к ошибке, которую мы так усердно обсуждаем ?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Импорт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]