Как зациклить G_FXX, где XX = (01,02..n) в Oracle Apex?

По сути, я хочу достичь циклического перемещения по массиву 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 ответ

Решение

Я не знаю, есть ли лучший способ сделать это, но вы могли бы создать массив и хранить в нем переменные 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;
/
Другие вопросы по тегам