我想从普遍的sql中的用户定义函数调用存储过程。我有:
SET :retVal = Sales_SP_getNetSales('2013-1-1','2013-1-31','05',:NetSales);
作为我的函数中的调用,其中Sales_SP_getNetSales是存储过程。这是正确的做法吗?存储过程返回一个整数。
答案 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)