Oracle 没有得到想要的结果

Oracle 没有得到想要的结果,oracle,oracle11g,oracle-apex,oracle-apex-5.1,Oracle,Oracle11g,Oracle Apex,Oracle Apex 5.1,在这里输入code我有个问题。下面是pl/sql以前的工作,现在我不知道发生了什么。。。我想使用复选框将记录插入一个名为incoming from a interactive report的表中 我的sql是 SELECT apex_item.checkbox2(1,filenumber) || apex_item.hidden(2,filename) || APEX_ITEM.hidden(3,'&APP_USER. ') || APEX

在这里输入code
我有个问题。下面是pl/sql以前的工作,现在我不知道发生了什么。。。我想使用复选框将记录插入一个名为incoming from a interactive report的表中

我的sql是

SELECT apex_item.checkbox2(1,filenumber)
       || apex_item.hidden(2,filename)   
       || APEX_ITEM.hidden(3,'&APP_USER. ')
       || APEX_ITEM.hidden(4,volume)

       || APEX_ITEM.hidden(6,filename)


       as  "SELECT",

       FILENUMBER,
       FILENAME,
       LOCATION,

       OPENDATE,
       CLOSEDDATE,

       VOLUME,
       SUB,
      temporary,
        registryid,
       STATUS
  from REGISTRY
我的pl/sql是

begin
  for idx in 1 .. apex_application.g_f01.count
  loop
    if apex_application.g_f01(idx) is not null then
       insert into incoming
         (filenumber,
          filename
         )
         values
         (apex_application.g_f01(idx),
          apex_application.g_f02(idx) 
         );
    end if;
  end loop;
end;
所有这些都是在过程之后发生的这很好。。然而,最近我遇到的问题是pl/sql给了我正确的文件号,但文件名不正确。 例如 假设ir报告已经发布

filenumber     filename   
1                 aaron
2                 kerron
3                 Joshua
当我选择数字2(第二条记录)时,传入表中的结果将是

filenumber     filename
      2         aaron
它总是在第一条记录落在apex_项中时选择第一条记录。隐藏

如果我把它倒过来

SELECT apex_item.checkbox2(1,filename)
       || apex_item.hidden(2,filenumber)   
文件名是正确的,文件号将执行我在上面解释的操作,即如果我选择第二条记录,我将获得第二条记录

 filenumber     filename
     1            kerron 
当我加上

 begin
      for idx in 1 .. apex_application.g_f01.count loop

            for i in 1..apex_application.g_f02.count loop

        if apex_application.g_f01(idx) is not null then
           insert into INCOMINGREQUESTNOTIFICATION
             (requestedfile,filenumber


             )
             values
             (apex_application.g_f01(idx),
              apex_application.g_f02(i)




             );
        end if;
      end loop;
    end loop;
    end;

@romeuBraga我得到的是所有3行,而不是所选的那一行。你能告诉我哪里出了问题吗?

你需要一个隐藏项来存储ID。 *1和2存储相同的信息

select  column1,
        column2,
        column3,
        apex_item.hidden(p_idx   => 1, 
            p_value => code) ||
        apex_item.checkbox2(p_idx   => 2, 
            p_value => code) CheckBox,
        other items
from x
在这种情况下,需要使用此pl/sql来获取正确的行值

begin
    for i in 1..apex_application.g_f01.count loop
        for j in 1..apex_application.g_f02.count loop
            if apex_application.g_f01(i) = apex_application.g_f02(j) then
                --insert something here
            end if;
        end loop;
    end loop;
end;

使用APEX_ITEM.CHECKBOX显示的复选框将仅包含选中行的APEX_应用程序数组中的值。因此,需要两个循环。在这个问题中检查idx项目1和3是如何使用的(仅在“服务器端条件:”一节中)。