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 попытался добавить столбец в таблицу, которая имеет процедуру редактирования, которая определяется чувствительностью атрибута строки. В эту таблицу нельзя добавить столбцы.
Есть ли способ его исправить?
Как только я отбрасываю и повторно создаю таблицу, я могу снова вставить ее.
Спасибо заранее.
Ответы
Ответ 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') решает проблему