Операция обновления завершилась неудачно с SQLCODE = -803, как устранить неполадки? - PullRequest
0 голосов
/ 08 февраля 2019

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

update table_Name set Col1 = 'C' 
where date(TRN_SCH_DPT_DT)  < current date - 200 DAYS 

Работает отлично!

update table_Name set Col1 = 'C'
where date(TRN_SCH_DPT_DT)  < current date - 100 DAYS

Ошибка сгенерирования => Ошибка DB2 SQL:

SQLCODE = -803, SQLSTATE = 23505, SQLERRMC = 2

Примечание: Iне обновляю первичный ключ.Любое число больше 200 работает нормально.

1 Ответ

0 голосов
/ 08 февраля 2019

В описании SQL0803N есть оператор SELECT, который может помочь вам найти уникальный индекс (с IID = 2), который ваш оператор пытается нарушить.

SELECTINDNAME, INDSCHEMA
ИЗ SYSCAT.INDEXES
ГДЕ IID = 2
И TABSCHEMA = ' TABLE_SCHEMA ' И TABNAME = ' TABLE_NAME '

...