Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Почему не работает функция?  [new]
asmnkt
Member

Откуда:
Сообщений: 4
Есть функция:
CREATE OR REPLACE FUNCTION getps ()
	 returns table 
			 (
			 	payId varchar(50),
			 	firmId varchar(50),
			 	serviceId varchar(50),
			 	bankId varchar(50),
			 	sumPay varchar(50)
			 )

    
return
	SELECT	pay.id, services.firm_id, payitem.service_id, office.bank_id, payitem.pay_sum
        FROM alex.t_pay pay                                              
			JOIN gpt.t_pay_item payitem	ON pay.id = payitem.pay_id                      
			JOIN gpt.t_office office		ON pay.office_id = office.id                  
			JOIN gpt.t_service services	ON payitem.service_id = services.id                 
			JOIN gpt.t_account account	ON account.id = payitem.account_id
			join gpt.t_firm firm 		ON services.firm_id=firm.id
        WHERE       pay.active = 'Y' AND pay.pay_date = cast('25.05.2015' as date) and account.account in ('524029')
        GROUP BY	services.firm_id, payitem.service_id, office.bank_id, pay.id, payitem.pay_sum


Хочу получить результаты так:
select * from table(gpt.getpays())

Но результат пустой.
Если просто выполняю запрос, то в выборке есть результат.
SELECT	pay.id, services.firm_id, payitem.service_id, office.bank_id, payitem.pay_sum
        FROM alex.t_pay pay                                              
			JOIN gpt.t_pay_item payitem	ON pay.id = payitem.pay_id                      
			JOIN gpt.t_office office		ON pay.office_id = office.id                  
			JOIN gpt.t_service services	ON payitem.service_id = services.id                 
			JOIN gpt.t_account account	ON account.id = payitem.account_id
			join gpt.t_firm firm 		ON services.firm_id=firm.id
        WHERE       pay.active = 'Y' AND pay.pay_date = cast('25.05.2015' as date) and account.account in ('524029')
        GROUP BY	services.firm_id, payitem.service_id, office.bank_id, pay.id, payitem.pay_sum

Подскажите, что не так?
26 май 15, 06:44    [17688828]     Ответить | Цитировать Сообщить модератору
 Re: Почему не работает функция?  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1091
asmnkt,

Не потому, что названия функций разные? (getps() vs gpt.getpays())

Теоретически такое было бы возможно с ROW/LBAC access control, когда ф-я создана под другим пользователем и "делегирует" его права на доступ посредством прав execute на себя другому пользователю. Используется редко, как там эти права делегируются надо подробней смотреть, но, наверное, не ваш случай.
26 май 15, 08:31    [17688984]     Ответить | Цитировать Сообщить модератору
 Re: Почему не работает функция?  [new]
bnm
Guest
asmnkt,

select * from table(gpt.getpays()) as ttt
?
26 май 15, 08:54    [17689081]     Ответить | Цитировать Сообщить модератору
 Re: Почему не работает функция?  [new]
asmnkt
Member

Откуда:
Сообщений: 4
CawaSPb,
Поправил название ф-ии. Результат тот же.
CREATE OR REPLACE FUNCTION gpt.getpays ()
	 returns table 
			 (
			 	payId varchar(50),
			 	firmId varchar(50),
			 	serviceId varchar(50),
			 	bankId varchar(50),
			 	sumPay varchar(50)
			 )

    
return
SELECT pay.id, services.firm_id, payitem.service_id, office.bank_id, payitem.pay_sum
FROM gpt.t_pay pay                                              
 JOIN gpt.t_pay_item payitem ON pay.id = payitem.pay_id                      
 JOIN gpt.t_office office	 ON pay.office_id = office.id                  
 JOIN gpt.t_service services ON payitem.service_id = services.id                 
 JOIN gpt.t_account account ON account.id = payitem.account_id
 join gpt.t_firm firm ON services.firm_id=firm.id
WHERE pay.active = 'Y' AND pay.pay_date = cast('25.05.2015' as date) and account.account in ('524029')
GROUP BY services.firm_id, payitem.service_id, office.bank_id, pay.id, payitem.pay_sum
26 май 15, 09:10    [17689151]     Ответить | Цитировать Сообщить модератору
 Re: Почему не работает функция?  [new]
asmnkt
Member

Откуда:
Сообщений: 4
bnm,
Так тоже пробовал, не помогло.
26 май 15, 09:11    [17689153]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить