powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Автогрант + with recursive + Var = (select ...)
3 сообщений из 3, страница 1 из 1
Автогрант + with recursive + Var = (select ...)
    #39862801
ABog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, Александр.
Всплыла трабла с CTE в процедуре при попытке сменить форму присваивания результата переменной.
Синтетический пример ниже.
(Версия IBE:2019.8.30.1; Firebird 3.0.5.33074)

В таком виде отрабатывает без вопросов:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create or alter procedure SOME$PROC$Ok as
declare variable I integer;
begin
  with recursive aTree as (select 1 as aLevel
                           from rdb$database
                           union all
                           select T.aLevel + 1 as aLevel
                           from aTree t)
  select first 1 * from aTree into :I;  
end


а вот в таком:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create or alter procedure SOME$PROC$Error as
declare variable I integer;
begin  
  I = (with recursive aTree as (select 1 as aLevel
                           from rdb$database
                           union all
                           select T.aLevel + 1 as aLevel
                           from aTree t)
       select first 1 * from aTree);
end


пытается грантовать процедуре права на таблицу aTree с закономерным результатом:
Код: plsql
1.
2.
3.
4.
This operation is not defined for system tables.
unsuccessful metadata update.
GRANT failed.
Table ATREE does not exist.
...
Рейтинг: 0 / 0
Автогрант + with recursive + Var = (select ...)
    #39863030
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
Автогрант + with recursive + Var = (select ...)
    #39864319
ABog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,
Спасибо, в 2019.9.17.1 работает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Автогрант + with recursive + Var = (select ...)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]