Кажется, проблема не в самом db2-сервере, а в инструменте, который вы используете для выполнения запросов. Вы сказали, что если вы запускаете то же самое в DBVisualizer, он работает правильно.
Просмотр документации по db2 для этой ошибки: sqlcode -104 sqlstate 42601
похоже, эта ошибка возвращается хранимой процедурой SYSPROC.ADMIN_CMD. Эта процедура предназначена для удаленного запуска команд администрирования db2 в целевой базе данных. Он не был предназначен для выполнения запросов ... так что парсер для этого процесса - это просто подмножество парсера db2, только для конкретных команд администратора. Так что он жалуется на токен FETCH из вашего запроса.
Кажется, что инструмент, который вы используете 'Я использую адаптер таблицы' (не знаю, что это такое), вызывает этот SYSPROC.ADMIN_CMD для выполнения запросов, но онвместо этого следует использовать обычный интерфейс CLI.
Я не знаю, какой именно инструмент вы используете. но попробуйте посмотреть, есть ли какие-то настройки, чтобы вы могли изменить это поведение.
Вот список административных команд, которые может выполнить процедура ADMIN_CMD: https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0012547.html.
, как вы можете видеть, инструкции SELECT там нет.
Если я пытаюсь выполнить простой SELECT, используя этот SP, я получаю ту же ошибку из окна CLP db2, прямо на сервере.
db2 "call SYSPROC.ADMIN_CMD('SELECT * FROM DEPARTMENT')"
SQL0104N An unexpected token "SELECT" was found following
"BEGIN-OF-STATEMENT". Expected tokens may include: "ADD". SQLSTATE=42601
С уважением, Сэмюэль Писарро