0

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

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

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

4

1 回答 1

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)
于 2014-01-29T01:49:45.730 回答