#db2
#db2
Вопрос:
при выполнении этого запроса в db2 на DBeaver :
reorg table departments
я получил эту ошибку (только на внешнем канале):
DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=table;reorg ;JOIN lt;joined_tablegt;, DRIVER=4.19.49
- что означает этот запрос?
- как я могу исправить ошибку?
обратитесь за любой помощью.
Ответ №1:
Попробуйте call sysproc.admin_cmd('reorg table db2inst1.departments')
, как вы используете DBeaver, который является приложением jdbc.
Если вы не определяете имя таблицы (например, с помощью db2inst1), то Db2 будет считать, что определитель (имя схемы) совпадает с именем идентификатора пользователя, которое вы использовали при подключении к базе данных.
DBeaver выполняет инструкции SQL, но он не может напрямую запускать команды Db2 — вместо этого любое приложение jdbc может запускать Db2-команды косвенно через вызываемую вами хранимую процедуру. ВЫЗОВ представляет собой инструкцию SQL.
Это reorg table
команда, это не инструкция SQL, поэтому ее необходимо запустить с помощью admin_cmd
хранимой процедуры, или ее можно запустить из командной строки операционной системы (или db2 clp) после подключения.
Так что, если у вас есть db2cmd.exe в MS-Windows или bash в linux/unix вы можете подключиться к базе данных и выполнять команды с помощью команды db2.