#oracle #oracle-apex #oracle-apex-5.1
#Oracle #oracle-apex #oracle-apex-5.1
Вопрос:
могу ли я использовать
вставить в (таблицу) значения (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;
который отлично работает .. но теперь я хочу использовать where Temporary =’yes’ в этом утверждении..
Я знаю, что вы можете использовать insert into (выберите x, y, z), где (xyz) но я хочу конкретные значения из флажка..
Комментарии:
1. Что
Temporary
здесь означает? Это другое значение флажка / formfield? Если да, вы хотели бы проверить это вif
инструкции над insert и либо выполнить, либо не выполнять insert на основе этого значения, верно?2. временное — это поле
3. Похоже, у вас XY-проблема .
Ответ №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),
...
Ответ №2:
Пожалуйста, попробуйте это, просто установите значения вашего флажка в dual и при необходимости примените условие 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;