在Oracle APEX中使用循环变量对项目进行编码

在Oracle APEX中使用循环变量对项目进行编码,oracle,plsql,oracle-apex,Oracle,Plsql,Oracle Apex,我有一组名称相同的项目,所以我在每个项目的末尾添加位置号,如:P77_VARIABLE_1,:P77_VARIABLE_2 因此,在将它们添加到数据库的过程中,我必须获取这些项并进行循环。循环将如下所示 for i in 1..:P77_NOMBRE_VARIABLE loop l_variable := new SFD_SI_VARIABLE_TYP(sfd_si_variable_seq.nextval, :P77_NOM_VARIABLE_i, :P77_TYPE_VARIAB

我有一组名称相同的项目,所以我在每个项目的末尾添加位置号,如:P77_VARIABLE_1,:P77_VARIABLE_2

因此,在将它们添加到数据库的过程中,我必须获取这些项并进行循环。循环将如下所示

for i in 1..:P77_NOMBRE_VARIABLE
  loop
    l_variable := new SFD_SI_VARIABLE_TYP(sfd_si_variable_seq.nextval, :P77_NOM_VARIABLE_i, :P77_TYPE_VARIABLE_i);
    SFD_SI_VARIABLE_PKG.AJOUTER(l_variable);
  end loop;

但问题是这不起作用。是否有人知道执行此循环并“动态”添加我的项的方法(或者使用变量i进行串联的更好方法)。谢谢。

不谈这是否明智(使用单个变量作为数组,例如使用Apex集合),您可以使用
v()
用于此的功能

for i in 1..:P77_NOMBRE_VARIABLE
loop
  l_variable := new SFD_SI_VARIABLE_TYP(sfd_si_variable_seq.nextval
    ,v('P77_NOM_VARIABLE_'||i)
    ,v('P77_TYPE_VARIABLE_'||i));
  SFD_SI_VARIABLE_PKG.AJOUTER(l_variable);
end loop;

撇开这是否是明智之举不谈(对可能应该是数组的对象使用单个变量,例如使用Apex集合),您可以使用
v()
函数来实现这一点

for i in 1..:P77_NOMBRE_VARIABLE
loop
  l_variable := new SFD_SI_VARIABLE_TYP(sfd_si_variable_seq.nextval
    ,v('P77_NOM_VARIABLE_'||i)
    ,v('P77_TYPE_VARIABLE_'||i));
  SFD_SI_VARIABLE_PKG.AJOUTER(l_variable);
end loop;