代码之家  ›  专栏  ›  技术社区  ›  Adi

如何在Oracle Apex中循环g_fxx,其中xx=(01,02..n)?

  •  0
  • Adi  · 技术社区  · 6 年前

    基本上,我想要实现的是通过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 回复  |  直到 6 年前
        1
  •  1
  •   Vih Damarques    6 年前

    我不知道是否有更好的方法可以做到这一点,但您可以创建一个数组并将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;
    /