Как зациклить G_FXX, где XX = (01,02..n) в Oracle Apex? - PullRequest
0 голосов
/ 26 июня 2018

По сути, я хочу получить цикл по массиву G_F0X, чтобы сделать мой код более компактным без использования, например:

APEX_APPLICATION.G_F01(1);
APEX_APPLICATION.G_F02(1);
APEX_APPLICATION.G_F03(1);

Конечно, это не работает, но я нигде не могу найти информацию и не знаю, как это сделать.

например:

for counter in 1..3 loop
   APEX_APPLICATION.G_F0**{here comes the counter value}**(1);
end loop;

1 Ответ

0 голосов
/ 26 июня 2018

Я не знаю, есть ли лучший способ сделать это, но вы могли бы создать массив и хранить в нем переменные g_fXX. как:

declare
  type t_vc_arr2 is table of apex_application_global.vc_arr2;
  g_fXX t_vc_arr2 := t_vc_arr2 (
                       apex_application.g_f01
                      ,apex_application.g_f02
                      ,apex_application.g_f03
                      --,apex_application.g_fXX
                     );
begin
  for i in 1 .. g_fXX.count loop -- loop through each apex_application.g_fXX array
    for j in 1 .. g_fXX(i).count loop -- loop through each value of current apex_application.g_fXX array
      dbms_output.put_line(g_fxx(i)(j));
    end loop;
  end loop;
end;
/
...