powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Не работает раздача автогрантов при получении параметров процедуры через функцию пакета
3 сообщений из 3, страница 1 из 1
Не работает раздача автогрантов при получении параметров процедуры через функцию пакета
    #40065907
Dimbuch®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Версия IBExpert 2021.3.29.1
Если в процедуре параметры начитываются при помощи функций пакета, то раздача грантов на эту процедуру перестаёт работать.
Если в параметрах процедуры указать заранее подготовленную переменную, раздача автогрантов снова работает.

Пример:
Из процедуры new_procedure2 вызывается процедура new_procedure1 . Параметры получаем при помощи функции new_package1.pack_function1()

Ожидаю появления в автогрантах строки:
Код: plsql
1.
2.
/* Following GRANT statements are generated automatically */
GRANT EXECUTE ON PROCEDURE NEW_PROCEDURE1 TO PROCEDURE NEW_PROCEDURE2;



Код: plsql
1.
2.
-- Так гранты не раздаются
EXECUTE PROCEDURE new_procedure1(new_package1.pack_function1());



Код: plsql
1.
2.
3.
4.
5.
-- А вот так всё работает, строка с автогрантом появляется
EXECUTE PROCEDURE new_procedure1(v_param1);

-- так тоже всё работает
EXECUTE PROCEDURE new_procedure1('param_value');



Исходники для повторения ошибки:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
SET TERM ^ ;

CREATE OR ALTER PROCEDURE new_procedure1 (
  inputtext VARCHAR(255))
AS
BEGIN
  /* Procedure Text */

END^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER PACKAGE new_package1
AS
BEGIN
  FUNCTION pack_function1
  RETURNS VARCHAR(255);
END^

RECREATE PACKAGE BODY new_package1
AS
BEGIN
  FUNCTION pack_function1
  RETURNS VARCHAR(255)
  AS
  BEGIN
    RETURN 'Text';
  END
END^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER PROCEDURE new_procedure2
AS
BEGIN

EXECUTE PROCEDURE new_procedure1(new_package1.pack_function1());

END^

SET TERM ; ^


...
Рейтинг: 0 / 0
Не работает раздача автогрантов при получении параметров процедуры через функцию пакета
    #40069143
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
Не работает раздача автогрантов при получении параметров процедуры через функцию пакета
    #40069191
Dimbuch®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,

Работает, спасибо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Не работает раздача автогрантов при получении параметров процедуры через функцию пакета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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