没有得到理想的结果

时间:2019-03-19 17:33:14

标签: oracle oracle11g oracle-apex oracle-apex-5.1

enter code here我有问题。在pl / sql之下以前曾经可以工作,现在我不知道发生了什么...我想使用复选框

将记录插入到名为“从交互式报告中传入”的表中

我的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给了我正确的文件号,但是给了我不正确的文件名。 例如 可以说红外线报告有

filenumber     filename   
1                 aaron
2                 kerron
3                 Joshua

当我选择数字2(第二条记录)时,传入表中的结果将为

filenumber     filename
      2         aaron

一旦落入apex_item.hidden,它总是选择第一条记录。

如果我扭转并放上

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行而不是所选行,你能告诉我做错了吗

1 个答案:

答案 0 :(得分:0)

您需要一个隐藏项来存储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;