如何从函数调用存储过程

时间:2014-01-28 20:58:46

标签: sql pervasive-sql

我想从普遍的sql中的用户定义函数调用存储过程。我有:

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

作为我的函数中的调用,其中Sales_SP_getNetSales是存储过程。这是正确的做法吗?存储过程返回一个整数。

1 个答案:

答案 0 :(得分: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)