#db2 #dbeaver
#db2 #dbeaver
Вопрос:
Я пытаюсь запустить этот запрос DB2 на DBEAVER:
TRUNCATE table departments immediate
но я получил эту ошибку:
DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7;DB2INST1.DEPARTMENTS, DRIVER=4.19.49
(это происходит как раз тогда, когда я запускаю его на DBEVAER (внешний канал) на локальном, он работает хорошо.
помочь кому-нибудь?
Комментарии:
1. ORA-02000 не является кодом ошибки Db2.
Ответ №1:
Код sqlcode -668 с sqlerrmc=7 (это 7 — «код причины») означает:
Операция SQL0668N не разрешена по коду причины «» в таблице»».
и код причины 7 означает:
Таблица находится в состоянии ожидания реорганизации. Это может произойти после инструкции ALTER TABLE, содержащей операцию, рекомендованную для реорганизации.
Если ваш идентификатор пользователя имеет правильные разрешения, попробуйте:
reorg table db2inst1.departments
если у вас есть доступ из командной строки к Db2 или из приложения jdbc, такого как DBeaver call admin_cmd ('reorg table db2inst1.departments')
.
Но реорганизация завершится неудачно, если у вашей учетной записи отсутствуют разрешения или если синтаксис не разрешен в вашей версии Db2-сервера, и в этом случае вы должны попросить администратора базы данных выполнить работу за вас или стать пользователем db2inst1
и запустить реорганизацию.
Когда реорганизация завершится без ошибок, повторите попытку усечения таблицы.
Комментарии:
1. Есть ли запрос, который «отменяет» таблицу реорганизации? похоже, что он застрял в запросе таблицы реорганизации (который я выполнял ранее) и из-за этого не может завершить операцию усечения.
2. Невозможно вывести таблицу из состояния ожидания реорганизации с помощью онлайн-(на месте) реорганизации. Необходимо использовать автономную (классическую) реорганизацию.
call admin_cmd ('reorg table db2inst1.departments')
.