Щас ДЕ повесится :-)

Я очень люблю FOR SELECT ... AS CURSSOR ... WHERE CURRENT OF, и чё-то никак не могу понять как же его заюзать.

Пробую так:

EXECUTE BLOCK
RETURNS (
  ID INTEGER)
AS
BEGIN
  FOR WITH RECURSIVE TR AS (SELECT * FROM "Tree" WHERE PARENT_ID IS NULL)
    SELECT ID FROM TR INTO :ID AS CURSOR CUR DO
  BEGIN
    UPDATE "Tree" SET NAME = NAME || '!' WHERE CURRENT OF CUR;
    SUSPEND;
  END
END

Говорит:

Invalid cursor reference.
Relation Tree is not found in cursor CUR.


Однако здаётся мне что оно должно работать (в т.ч. с пердставлениями и UNION) :-/

Ответить