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