Подтвердить что ты не робот

Db2 SQLCODE -668 при вставке

Пока я вставлял данные в таблицу (db2), я получил эту ошибку:

Message: Operation not allowed for reason code "7" on 
table "ELSAG.ICGR1106".. SQLCODE=-668, SQLSTATE=57016, DRIVER=3.50.152,...

когда я искал его, я обнаружил, что предыдущий оператор ALTER TABLE попытался добавить столбец в таблицу, которая имеет процедуру редактирования, которая определяется чувствительностью атрибута строки. В эту таблицу нельзя добавить столбцы.

Есть ли способ его исправить?

Как только я отбрасываю и повторно создаю таблицу, я могу снова вставить ее.

Спасибо заранее.

4b9b3361

Ответ 1

Чтобы добавить ответ Джеймса и спасти людей, оглядываясь, вы можете выполнить

CALL SYSPROC.ADMIN_CMD('REORG TABLE MY_TABLE_NAME')

через любой доступный клиент SQL (т.е. даже через соединение ODBC или JDBC), чтобы исправить эту проблему. Однако соединение должно быть в режиме автосохранения, и для выполнения этой команды у вас должны быть права администратора.

Я настоятельно рекомендую прочитать документацию по REORG перед ее вызовом.

Ответ 2

В соответствии с этим: SQL0668

Вы внесли некоторые изменения в таблицу, для которой требуется REORG, прежде чем вы сможете продолжить обновление таблицы.

Запустите утилиту REORG с таблицей, и вы должны быть в порядке.

Ответ 3

CALL SYSPROC.ADMIN_CMD ('REORG TABLE TABLE_NAME') решает проблему