Общая ошибка: 1 OCIStmtExecute: ORA-00001: уникальное ограничение (HR.SYS_C004023) нарушено? - PullRequest
0 голосов
/ 07 октября 2010

Я могу определить сообщение об ошибке, что из-за ограничения уникального значения моя таблица является «ветвями» и откуда пришел SYS_C004023. Я проверил таблицу ветвей и нет дублирования значений. В чем может быть проблема.

1 Ответ

1 голос
/ 07 октября 2010

откуда взялся SYS_C004023

Это сгенерированное системой имя ограничения, которое Oracle создает при создании ограничения без явного имени, например,

create table mytable (col1 integer primary key);

Ограничение первичного ключа на mytable будет сгенерировано системой, поскольку я не назвал его так:

create table mytable (col1 integer constraint mytable_pk primary key);

Вы можете узнать, к какой таблице относится это ограничение, например:

select table_name
from all_constraints
where owner = 'HR'
and constraint_name = 'SYS_C004023';

И вы можете узнать, какие столбцы он делает уникальными, как это:

select column_name
from all_cons_columns
where owner = 'HR'
and constraint_name = 'SYS_C004023';

дублирования значений нет

Нет, не будет, благодаря ограничению. Произошла неудачная попытка вставить или обновить строку, чтобы нарушилось ограничение уникальности.

...