Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Не могу выполнить compound block  [new]
mrnobody
Member

Откуда:
Сообщений: 1
Добрый день.

Обладаю DB2 UDB for AS/400. PRODUCT VERSION = 06.01.0000 V6R1m0

Никак не могу выполнить compound block.

Условно он такой:

BEGIN
DECLARE STMT CHAR(255);

FOR_1:FOR V1 AS C1 CURSOR FOR
SELECT 'CREATE TABLE XXX ()' cmd FROM SYSIBM.SYSDUMMY1
DO
SET STMT = FOR_1.CMD;
PREPARE S1 FROM STMT;
EXECUTE S1;
END FOR FOR_1;
END

Не смотря на dummy sql который я внес, падает всегда с ошибкой:
SQL Error [42601]: [SQL0104] Token STMT was not valid. Valid tokens: SECTION.

Для подключений использую Dbeaver 5.2.5


Очень жажду помощи((

Каких-то серьёзных модификаций с бд сделать не могу, только если на сессию. Хранимку тоже сделать не могу.
30 ноя 18, 17:32    [21750490]     Ответить | Цитировать Сообщить модератору
 Re: Не могу выполнить compound block  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4842
mrnobody,

Добрый день.

Оно там в 7.1 только появилось, начиная с какого-то TR даже.
What's new for IBM i 7.1
TechTip: Compound Dynamic SQL Statements
30 ноя 18, 18:22    [21750596]     Ответить | Цитировать Сообщить модератору
 Re: Не могу выполнить compound block  [new]
Serg0
Member

Откуда: Алматы
Сообщений: 78
Если проблема только в создании таблицы, то на старых операционках можно так - править DDS в соурс файле и компилировать из SQL:

SET V_CMD = 'CRTPF FILE(QTEMP/TMP_PF) SRCFILE(QDLSSRC/PF)' ;
SET V_LEN = LENGTH ( TRIM ( V_CMD ) ) ;
CALL QSYS . QCMDEXC ( V_CMD , V_LEN ) ;
4 дек 18, 10:27    [21752658]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить