ЕСЛИ условие с циклом FOR db2 plsql
Я создаю процедуру на db2, которая будет вставлять значения в таблицу, только если таблица пуста. Я создал следующие утверждения, но что-то не так, так как я получаю сообщение об ошибке:
[42601][-104] An unexpected token "END-OF-STATEMENT" was found
following "END FOR".
Expected tokens may include: " END IF".. SQLCODE=-104, SQLSTATE=42601,
DRIVER=4.7.85
create or REPLACE PROCEDURE proc1
BEGIN
IF (exists (select 1 from table1)) then
TRUNCATE TABLE table1;
ELSE
FOR l1 as
select id, max(bla) as bla from table2 group by id
do
insert into table1 (column1, column2)
values (id, bla);
END FOR;
END IF;
END;
Спасибо!
2 ответа
Видимо, это небольшое изменение помогло решить проблему:
create or REPLACE PROCEDURE proc1
BEGIN
IF (exists (select 1 from table1)) then
DELETE FROM TABLE table1;
END IF;
FOR l1 as
select id, max(bla) as bla from table2 group by id
do
insert into table1 (column1, column2)
values (id, bla);
END FOR;
END;
Почему ты не делаешь именно это
create or REPLACE PROCEDURE proc1
BEGIN
DELETE FROM table1;
insert into table1 (column1, column2)
select id, max(bla) from table2 group by id;
END;