我具有此功能:
FUNCTION balance_gl_s(p_Date VARCHAR2, p_Ledgerid NUMBER)
我想在这样的查询中使用一个函数:
select *
from ledgers l
cross apply (select *
from table(gl_balance_s.balance_gl_s(13970914, l.ledger_fk)))
我用它搜索了一下,发现此语法在12c版本之后有效,并且我使用的是11g。 我还有其他解决方案吗?预先谢谢你。
答案 0 :(得分:0)
您可以创建另一个函数并在循环中调用第一个函数:
CREATE OR REPLACE FUNCTION balance_gl_s_outer(p_Date VARCHAR2) RETURN your_type
PIPELINED IS
Rec your_type;
cursor cr is
select l.ledger_fk from ledgers l;
BEGIN
for rr in cr loop
FOR Rec IN (select *
from table(gl_balance_s.balance_gl_s(p_Date,
rr.ledger_fk))) LOOP
PIPE ROW(Rec);
END LOOP;
end loop;
end;