powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странная ошибка parent key
8 сообщений из 8, страница 1 из 1
Странная ошибка parent key
    #39689736
Рамаяна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги , в этом скрипте возникает ошибка ,которому объяснения я не нахожу
«ORA-02291: integrity constraint (IBS.FK_CRD_PARTN_REF_OBJECT) violated - parent key not found»
Есть ли идеи?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
INSERT ALL
          INTO object
        VALUES (object_seq.nextval, const_object.OT_CREDIT_PARTNER, const_general.NO)
          INTO credit_partner 
        VALUES (object_seq.currval, t_numinlist, partner_name, NULL, const_general.NO, const_general.NO) 
          log errors into err_credit_partner reject limit unlimited
          INTO object_code
        VALUES (object_seq.currval, const_credit.PARTNER_TCODE_RS, to_char(t_attrid))
        SELECT attr.t_attrid,   --Сохраним в кодах
               attr.t_numinlist,--Сохраним в карточке партнера
               substr(nvl(attr.t_name, 'Без имени'), 1, 99) partner_name
          FROM dwmain.cobjattr_dbt attr
         WHERE attr.t_objecttype = 400
           AND attr.t_groupid = 101
           AND NOT attr.t_numinlist IN (SELECT code FROM credit_partner) ;
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39689739
flexgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рамаяна,

Для того чтобы понять где проблема нужна структура таблиц, присутствующих в скрипте, включая внешние ключи.
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39689750
Рамаяна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил err_credit_partner , оказывается для всех партнеров вываливается с такой ошибкой!
Вот структуры

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
-- Create table
create table CREDIT_PARTNER
(
  id        NUMBER(10) not null,
  code      VARCHAR2(10) not null,
  name      VARCHAR2(100) not null,
  parent_id NUMBER(10),
  is_market NUMBER(1) not null,
  is_delete NUMBER(1) not null
)
create unique index CREDIT_PARTNER_IDX_CODE on CREDIT_PARTNER (CODE)
 
create index         CREDIT_PARTNER_IDX_PARENT on CREDIT_PARTNER (PARENT_ID)
 
-- Create/Recreate primary, unique and foreign key constraints 
alter table CREDIT_PARTNER
  add constraint PK_CREDIT_PARTNER primary key (ID)
  using index 
  
alter table CREDIT_PARTNER
  add constraint FK_CRD_PARTN_REF_OBJECT foreign key (ID)
  references OBJECT (ID);



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE "IBS"."OBJECT" 
   (	"ID" NUMBER(10,0) NOT NULL ENABLE, 
	    "OBJECT_TYPE_ID" NUMBER(2,0) NOT NULL ENABLE, 
	    "IS_DELETE" NUMBER(1,0) NOT NULL ENABLE, 
	    CONSTRAINT "PK_OBJECT" PRIMARY KEY ("ID")
      USING INDEX 
     
	  CONSTRAINT "FK_OBJECT_REF_OBJECT_TYPE" FOREIGN KEY ("OBJECT_TYPE_ID")
	  REFERENCES "IBS"."OBJECT_TYPE" ("ID") ENABLE
   ) 
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39689759
Рамаяна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отключили , запустили и затем включили констрейнт и все сработало.
Есть ли гарантия на очередность инсертов в insert all ?
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39689854
Бельфя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
11 xe не воспроизвелось.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create sequence seq_test;
create table testpar (id number);
alter table testpar
  add constraint testpar_pk primary key (ID)
  using index; 
create table testchi (id_chi number);
alter table testchi
  add constraint testchi_pk primary key (id_chi)
  using index; 
alter table testchi
  add constraint fk_testchi foreign key (id_chi)
  references testpar (ID);
 create table somet (id number);
  
  insert all
  into testpar(id) values(seq_test.nextval)
  into testchi(id_chi) values(seq_test.currval)
  into somet(id) values(seq_test.currval)
  select * from dual connect by level<5000
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39690077
flexgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рамаяна,

автор
Код: plsql
1.
2.
3.
alter table CREDIT_PARTNER
  add constraint FK_CRD_PARTN_REF_OBJECT foreign key (ID)
  references OBJECT (ID);



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE "IBS"."OBJECT" 
   (	"ID" NUMBER(10,0) NOT NULL ENABLE, 
	    "OBJECT_TYPE_ID" NUMBER(2,0) NOT NULL ENABLE, 
	    "IS_DELETE" NUMBER(1,0) NOT NULL ENABLE, 
	    CONSTRAINT "PK_OBJECT" PRIMARY KEY ("ID")
      USING INDEX 
     
	  CONSTRAINT "FK_OBJECT_REF_OBJECT_TYPE" FOREIGN KEY ("OBJECT_TYPE_ID")
	  REFERENCES "IBS"."OBJECT_TYPE" ("ID") ENABLE
   ) 



У тебя таблица CREDIT_PARTNER зависит от таблицы OBJECT. А таблица OBJECT в свою очередь зависит от таблицы OBJECT_TYPE, т.е. порядок вставки должен быть таким:
сначала в OBJECT_TYPE

потом в OBJECT

затем в CREDIT_PARTNER

Откуда взялся OBJECT_CODE я не понял.

автор
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
INSERT ALL
          INTO object
        VALUES (object_seq.nextval, const_object.OT_CREDIT_PARTNER, const_general.NO)
          INTO credit_partner 
        VALUES (object_seq.currval, t_numinlist, partner_name, NULL, const_general.NO, const_general.NO) 
          log errors into err_credit_partner reject limit unlimited
          INTO object_code
        VALUES (object_seq.currval, const_credit.PARTNER_TCODE_RS, to_char(t_attrid))
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39690333
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рамаяна,

Помню, были (периодически) непонятные проблемы с иерархическими запросами в Oracle 9.2.0.4
Тогда помог апдейт до 9.2.0.8
...
Рейтинг: 0 / 0
Странная ошибка parent key
    #39690335
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, сорри, мой пост о другом. Не то прочитал.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странная ошибка parent key
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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