Передача коррелированных значений в функцию в Oracle - PullRequest
1 голос
/ 08 апреля 2019

У меня есть эта функция:

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. Есть ли другое решение для того, что я хочу сделать? Заранее спасибо.

1 Ответ

0 голосов
/ 08 апреля 2019

вы можете создать другую функцию и вызвать первую функцию в цикле:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...