Что определяет точку с запятой в качестве разделителей операторов в командах CRTQMQRY и STRQMQRY
При запуске многострочного кода SQL с точкой с запятой в качестве разделителя операторов SQL следующие ошибки:
CRTQMQRY QMQRY(MYPGMLIB/MYSQL) SRCFILE(MYLIB/QSQLSRC)
STRQMQRY QMQRY(MYPGMLIB/MYSQL)
Принимая во внимание, что следующие работы:
RUNSQLSTM SRCFILE(MYPGMLIB/QSQLSRC) SRCMBR(MYSQL) COMMIT(*NONE)
Я погуглил параметры в CRTQMQRY и STRQMQRY, но не могу найти ничего, что указывает разделитель операторов.
2 ответа
Диспетчер запросов (QM) не поддерживает несколько операторов для каждого участника.
Используйте RUNSQLSTM.
Если в собранной группе операторов требуется несколько запросов, вы можете использовать RUNSQLSTM. Если у них есть логические соединения, вы можете закодировать их в хранимую процедуру DB2.
Если вы хотите сделать это с помощью Query Management, например, для запуска с помощью команды STRQMQRY, вам необходимо создать QM PROC. См. Руководство по программированию DB2 Universal Database для iSeries Query Management (PDF). Хотя QM может быть мощным, очень немногие узнают о PROC QM в DB2 for i. QM до этого уровня чаще встречается на мэйнфреймах и даже на ПК.