我有一个表值函数:
create or replace
FUNCTION "GetPositionsWithSymbol"
(
par_Symbol "Symbols"."Symbol"%TYPE,
ErrorCode OUT "ErrorDefs"."ErrorCode"%TYPE
)
RETURN "TableTypes"."PositionTable"
类型定义如下:
create or replace
PACKAGE "TableTypes" AS
TYPE "PositionTable" IS TABLE OF MainSchema."Positions"%ROWTYPE;
END "TableTypes";
当我调用这个函数时,我需要迭代结果,如下所示:
for rec in (select * from table(MainSchema."GetPositionsWithSymbol"(par_Symbol, ErrorCode)))
loop
var_TotalGivenAmount := var_TotalGivenAmount + rec."Amount";
end loop;
但是这种语法会导致错误,并且 oracle 声称 rec."Amount" 无法识别,必须声明。我为此使用了错误的语法吗?
编辑:我从另一个模式调用该函数。