2014-01-28 5 views
0

Я хочу вызвать хранимую процедуру из пользовательской функции во всём распространенном sql. У меня есть:Как вызвать хранимую процедуру из функции

SET :retVal = Sales_SP_getNetSales('2013-1-1','2013-1-31','05',:NetSales); 

как вызов в моей функции, где Sales_SP_getNetSales - хранимая процедура. Правильно ли это? Хранимая процедура возвращает целое число.

ответ

0

Я не могу найти способ вызова хранимой процедуры из UDF. Для выполнения хранимой процедуры требуется либо инструкция EXEC (UTE), либо CALL. Однако нет способа перевести результирующий набор, возвращаемый хранимой процедурой, в переменную в Pervasive UDF. Частично это может быть связано с тем, что сохраненная процедура не может гарантировать возврат только одного значения. Сохраненная процедура в Pervasive возвращает целый набор результатов.
Возможно, вы захотите изменить сохраненную процедуру на функцию. Вызов функции от функции возможен:

create function f2(:B integer) 
returns integer 
as 
begin 
return :B; 
end; 

CREATE FUNCTION f1(:A integer) 
RETURNS Integer 
AS 
BEGIN 
RETURN f2(:a); 
END; 

select f1(5) 
+0

хорошо объясняйте различия между процедурой и функцией, теперь я знаю. – Charlesliam

Смежные вопросы