0

我有一个表值函数:

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" 无法识别,必须声明。我为此使用了错误的语法吗?

编辑:我从另一个模式调用该函数。

4

0 回答 0