Как обновить выбранные строки только в Oracle SQL
Так что в основном у меня есть табличная форма. Один из столбцов является флажком, другой столбец называется "скрытым" и будет содержать значение "да" или "нет".
У меня есть кнопка для скрытия строк, поэтому пользователь должен иметь возможность выбрать определенные строки с помощью флажков, затем нажать кнопку "Скрыть", и это должно изменить строки, выбранные пользователем, на "да" в столбце "скрытый".
Так что мой SQL выглядит так:
UPDATE nameOfTable
SET hidden = 'Yes'
WHERE hidden = 'No';
Очевидно, что это просто обновит "скрытый" столбец до "да" для всех строк, которые в настоящее время "нет", но как мне вместо этого сделать это, чтобы просто обновить строки, выбранные пользователем с помощью флажков?
3 ответа
Просто передайте значение первичного ключа (id), выбранного пользователем, в запрос к базе данных и сравните его с полем первичного ключа. и, очевидно, приведенный выше ответ @SRIRAM определенно сработает для вас..!!
Вы собираетесь использовать пакет HTMLBD_APPLICATION для этого. При создании табличной формы APEX автоматически присваивает идентификатор каждому из редактируемых полей в таблице. Когда вы нажмете кнопку отправки, вам понадобится функция, которая перебирает выбранные элементы в таблице. Вы можете узнать, какое имя APEX назначает каждому полю, проверив HTML-код этого поля в этой таблице (это будет HTML-идентификатор и будет выглядеть как G_FXX, где X - число). Вам также потребуется поле в таблице, чтобы идентифицировать каждую строку (например, первичный ключ), чтобы база данных знала, какую строку нужно обновить в бэкэнде.
BEGIN
FOR i IN 1..HTMLBD_APPLICATION.G_F01.COUNT LOOP
UPDATE nameoftable SET hidden = 'yes' WHERE
HTMLDB_APPLICATION.G_FXX(HTMLDB_APPLICATION.G_F01(i)) = row_key;
END LOOP;
END;
XX в операторе обновления будет полем в таблице, содержащей идентификатор строки. Это получит список отмеченных полей и цикл по списку, обновляющий каждую проверенную строку.
update nameoftable
set hidden='yes'
where id =selectedcheckboxid
здесь id является первичным ключом таблицы