db2 SQLCODE -668 при вставке - PullRequest
       0

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

22 голосов
/ 28 сентября 2011

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

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

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

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

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

Заранее спасибо.

Ответы [ 3 ]

43 голосов
/ 02 октября 2013

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

CALL SYSPROC.ADMIN_CMD('REORG TABLE MY_TABLE_NAME')

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

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

7 голосов
/ 28 сентября 2011

Согласно этому: SQL0668

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

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

3 голосов
/ 10 декабря 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...