Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Ayu
Member

Откуда:
Сообщений: 26
Помогите пожалуйста разобраться с ошибкой
"Объект не может быть удален, так как в таблице "Отпуск" существуют объекты, на него ссылающиеся"
Сам текст ошибки следующий
Обработчиком ошибок верхнего уровня получен сигнал:
Исключение типа EOracleError, по адресу 0x0127845E с сообщением :
__________________________________________
"{15276822-2881-48B9-ABB9-CF80A1CDFCEF}
USRSLRREP
Main
begin
usrslraversalaryapi.getavermoney(slrsystem.getfactory,[:idDepartment],[:dPeriod]);
end;

begin
usrslraversalaryapi.getavermoney(slrsystem.getfactory,88587,TO_DATE('30.04.2015 00:00:00', 'dd.mm.yyyy hh24:mi:ss'));
end;

Исключение типа EOracleError, по адресу 0x00C8C820 с сообщением :

"{{ORA-02292: нарушено ограничение целостности (SLR_193) - обнаружена порожденная запись
ORA-06512: на "SLROTPAPI", line 885
ORA-06512: на "USRSLROTPCALC", line 2577
ORA-01403: данные не найдены
ORA-06512: на "USRSLRAVERSALARYAPI", line 12
ORA-06512: на line 2
}}"
"

Как я понимаю ошибка в том что в таблице "Отпуск" существуют объекты, на которые уже есть ссылка. Подскажите с чего начать? И как в таких ситуациях действовать
13 июл 15, 21:03    [17887534]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Пыщ-пыщ мобайл
Guest
Ayu,

Начать, я думаю, нужно с бизнес- смысла этого удаления. Ведь не зря же констрейнт повесили? Если дочерние записи нужны, значит, отпуск удалять нельзя. Если не нужны- уда ли дочерние записи, потом родительскую.
13 июл 15, 21:18    [17887555]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 808
Ayu,

Начнем с того что в таблице нет объектов, в таблицах есть записи. Еще в твоей таблице "Отпуск" имеется foreign key constraint, который ссылается на другую таблицу, из которой ты пытался удалить запись либо изменить поле, на который ссылается констрейнт. Прежде всего тебе надо выяснить, на какую именно таблицу ссылается foreign key constraint и почему твой код пытается произвести удаление или изменение данных в таблице без учета наличия связи с другими таблицами.
13 июл 15, 21:21    [17887563]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Den89
Member

Откуда: Санкт-Петербург
Сообщений: 351
Ayu
Помогите пожалуйста разобраться с ошибкой
"Объект не может быть удален, так как в таблице "Отпуск" существуют объекты, на него ссылающиеся"
Сам текст ошибки следующий
Обработчиком ошибок верхнего уровня получен сигнал:
Исключение типа EOracleError, по адресу 0x0127845E с сообщением :
__________________________________________
"{15276822-2881-48B9-ABB9-CF80A1CDFCEF}
USRSLRREP
Main
begin
usrslraversalaryapi.getavermoney(slrsystem.getfactory,[:idDepartment],[:dPeriod]);
end;

begin
usrslraversalaryapi.getavermoney(slrsystem.getfactory,88587,TO_DATE('30.04.2015 00:00:00', 'dd.mm.yyyy hh24:mi:ss'));
end;

Исключение типа EOracleError, по адресу 0x00C8C820 с сообщением :

"{{ORA-02292: нарушено ограничение целостности (SLR_193) - обнаружена порожденная запись
ORA-06512: на "SLROTPAPI", line 885
ORA-06512: на "USRSLROTPCALC", line 2577
ORA-01403: данные не найдены
ORA-06512: на "USRSLRAVERSALARYAPI", line 12
ORA-06512: на line 2
}}"
"

Как я понимаю ошибка в том что в таблице "Отпуск" существуют объекты, на которые уже есть ссылка. Подскажите с чего начать? И как в таких ситуациях действовать

Не глобал ерп случайно?
14 июл 15, 00:26    [17888140]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Den89
Member

Откуда: Санкт-Петербург
Сообщений: 351
Вообще надо получить исходный код ошибки (например, удалив вручную через plsql developer), а дальше, зная имя constraint, который не даёт удалить запись, через all_constraint находить все ссылающие записи.
Но анализ может усложниться, если ссылающийся объект бизнес-логики смапирован на несколько таблиц.
14 июл 15, 00:34    [17888163]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1317
Den89,

Ты бы сообщение ТС прочитал сначала, а потом бы уже писал
14 июл 15, 10:09    [17888833]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Den89
Member

Откуда: Санкт-Петербург
Сообщений: 351
oragraf,

Если знаешь лучший способ искать ссылочные записи, отличный от all_constraint, то я тебя внимательно слушаю.
14 июл 15, 14:59    [17890503]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Ayu
Member

Откуда:
Сообщений: 26
Большое спасибо, Всем, разобралась
20 июл 15, 18:37    [17914357]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка Объект не может быть удален, так как существуют объекты, на него ссылающиеся  [new]
Den89
Member

Откуда: Санкт-Петербург
Сообщений: 351
Ayu
Большое спасибо, Всем, разобралась

что за ERP ?
20 июл 15, 18:55    [17914459]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить