Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Автогрант + with recursive + Var = (select ...) / 3 сообщений из 3, страница 1 из 1
17.09.2019, 13:01
    #39862801
ABog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автогрант + with recursive + Var = (select ...)
Добрый день, Александр.
Всплыла трабла с 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
17.09.2019, 18:06
    #39863030
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автогрант + with recursive + Var = (select ...)
Исправил.
...
Рейтинг: 0 / 0
20.09.2019, 02:56
    #39864319
ABog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автогрант + with recursive + Var = (select ...)
IBExpert,
Спасибо, в 2019.9.17.1 работает
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Автогрант + with recursive + Var = (select ...) / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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