我可以使用“where”插入值

问题描述 投票:-1回答:2

我可以用吗

插入(表)值(xyz)其中(xzy)

我正在根据复选框选择插入值

begin
  for idx in 1 .. apex_application.g_f01.count
  loop
    if apex_application.g_f01(idx) is not null then
       insert into CONSOLIDATE
         (filenumber, 
          INCOMINGDATE,
          filename
         )
         values
         (apex_application.g_f01(idx),
          apex_application.g_f03(idx),
          apex_application.g_f04(idx)


         );
    end if;
  end loop;
end;

这很好..但现在我想在那个声明中使用临时='是'的地方..

我知道你可以使用insert into(select x,y,z)where(xyz)但是我想要复选框中的特定值。

oracle oracle-apex oracle-apex-5.1
2个回答
1
投票

请尝试此操作,只需从双重选中您的复选框值,并根据需要应用于where条件

begin
  for idx in 1 .. apex_application.g_f01.count
  loop
    if apex_application.g_f01(idx) is not null then
       insert into CONSOLIDATE
         (filenumber, 
          INCOMINGDATE,
          filename
         )
         SELECT
          apex_application.g_f01(idx),
          apex_application.g_f03(idx),
          apex_application.g_f04(idx)
         FROM DUAL
         WHERE apex_application.g_f01(idx) = 'XYZ'  ;
    end if;
  end loop;
end;

1
投票

不,你不能使用WHERE,但你可以使用CASE,例如

values
     (case when apex_application.g_f01(idx) in ('A', 'B', 'C') then apex_application.g_f01(idx)
           else null
      end,
      apex_application.g_f01(idx),
      ...
© www.soinside.com 2019 - 2024. All rights reserved.