Как обновить выбранные строки только в 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 является первичным ключом таблицы

Другие вопросы по тегам