Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Разница в доступах к сущностям между 2-мя скалярными функциями... / 5 сообщений из 5, страница 1 из 1
01.04.2013, 17:48
    #38207726
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разница в доступах к сущностям между 2-мя скалярными функциями...
Здравствуйте! Понимаю, что похожий вопрос задавал, но хочу все таки в крайний раз для себя понять, есть ли шанс разобраться.
1. Функция inline :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR REPLACE FUNCTION TEMPR.TESTA ()
  RETURNS VARCHAR(32000)
BEGIN  ATOMIC  
DECLARE STR_RESULT VARCHAR(32000);
DECLARE STR_EXEC   VARCHAR(32000);
SET STR_RESULT =  cast((select MAX(ID_PERSON) from FORM.NICK_FUND where ID_PERSON_FUND_PARENT  < 50) as varchar(400));
RETURN cast(STR_RESULT as VARCHAR(32000));
END;
select TEMPR.TESTA () from SYSIBM.SYSDUMMY1;



2. Почти такая же скалярная функция,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR REPLACE FUNCTION TEMPR.TESTSB ()
  RETURNS VARCHAR(32000)
BEGIN   
DECLARE STR_RESULT VARCHAR(32000);
DECLARE STR_EXEC   VARCHAR(32000);
SET STR_RESULT =  cast((select MAX(ID_PERSON) from FORM.NICK_FUND where ID_PERSON_FUND_PARENT  < 50) as varchar(400));
RETURN cast(STR_RESULT as VARCHAR(32000));
END;
select TEMP.TESTSB() from SYSIBM.SYSDUMMY1;



Не работает и при компиляции выдает предупреждение.

[IBM][DB2/NT64] SQL1179W The "PACKAGE" called "TEMPR.P1928691914" may require the invoker to have necessary privileges on data source objects.
Уточню, что FORM.NICK_FUND - это NickName (тоже Db2 таблица - только в другой базе)
Судя по ругачке ему каких то прав не хватает, есть мысли о DYNAMICRULES RUN для пакета и последуещем его rebind.
Первый вариант inline функции мне не подходит, так как - он не поддерживает динамику, а я в будущем планирую её использовать.

Здесь уже давали ссылку на неизличимый баг IBM: http://www-01.ibm.com/support/docview.wss?uid=swg1JR24656, но ведь я не делаю никаких DDL команд для таблицы источника, а тупо делаю sellect - может кто знает?

P.S.
Пробовал на америкосовских форумах (4-х) написать, но там по-моему глухо как в танке, ихние Марки Баринштейны походу ещё в спячке, да и в Канаде не меньше снега , чем у нас .
Марк, за решение данной проблемы - готов проставиться пивом - походу я знаю где Вас искать
...
Рейтинг: 0 / 0
01.04.2013, 18:27
    #38207812
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разница в доступах к сущностям между 2-мя скалярными функциями...
medoed,

SQL1179W - Это предупреждение (W на конце), а не ошибка (у них - N).
Т.е. функция создаётся и может быть использована.
Если неохота получать их, сделайте в сессии 1 раз перед вызовом create это:
CALL SYSPROC.SET_ROUTINE_OPTS('FEDERATED YES')
См. описание BIND -опции FEDERATED.
...
Рейтинг: 0 / 0
01.04.2013, 18:38
    #38207840
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разница в доступах к сущностям между 2-мя скалярными функциями...
Mark Barinstein,

Хотя нет - в runtime оно должно вывалиться с SQL20136N.
Это какое-то ограничение на compiled функции и nicknames...
...
Рейтинг: 0 / 0
01.04.2013, 18:55
    #38207870
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разница в доступах к сущностям между 2-мя скалярными функциями...
Mark BarinsteinMark Barinstein,

Хотя нет - в runtime оно должно вывалиться с SQL20136N.
Это какое-то ограничение на compiled функции и nicknames...
Дык она и при использовании выдает ошибку , может можно как то обойти, не порадуете Марк, я в официальной доке ни для NickName ни для Function такое ограничение не нашел... Версия СУБД 9.7.
...
Рейтинг: 0 / 0
02.04.2013, 16:05
    #38209426
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разница в доступах к сущностям между 2-мя скалярными функциями...
medoedMark BarinsteinMark Barinstein,

Хотя нет - в runtime оно должно вывалиться с SQL20136N.
Это какое-то ограничение на compiled функции и nicknames...
Дык она и при использовании выдает ошибку , может можно как то обойти, не порадуете Марк, я в официальной доке ни для NickName ни для Function такое ограничение не нашел... Версия СУБД 9.7.

Марк, вы не порадуете ответом, может быть там же сказано (в документации) с какой версии СУБД DB2 это ограничение снимется!?
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Разница в доступах к сущностям между 2-мя скалярными функциями... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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