У меня проблемы с использованием флажков в сочетании с оператором вставки / обновления. На данный момент у меня есть отчет о доступных кредитных картах с флажком рядом с каждой строкой. Пользователь может выбрать любое количество утверждений, а затем нажать кнопку «Отправить», чтобы обновить свой профиль. Вот где я застрял.
Я хотел бы иметь один процесс PSQL, который будет обновлять таблицу профилей пользователей в зависимости от того, есть ли указанная кредитная карта. Если его не существует, мы вставляем всю необходимую информацию. Если он уже есть, все, что я хочу сделать, это обновить эту запись, изменив «Approved_flag» на «Y». Я написал этот фрагмент кода, который вставляет новые записи, и он отлично работает:
FOR i in 1..APEX_APPLICATION.G_F01.count
LOOP
INSERT INTO ls_credit_cards(credit_card_id, created_by, created_on, card_id, user_id, approved_flag)
VALUES (apex_application.g_f01(i), :F125_USER_ID,sysdate, :P58_CARDS, :P58_USER, 'Y');
END LOOP;
Я понимаю, что ORACLE не поддерживает обычные команды if / else, поэтому я немного исследовал это и обнаружил, что, вероятно, мне следует использовать команду MERGE, но все, что я видел, заставляет его использовать две таблицы. Все, что я использую, это один, все данные берутся из отчетов / флажков, так что я немного растерялся. Могу ли я по-прежнему использовать команду MERGE в этом случае, или есть что-то еще, что будет лучше отвечать моим целям?