如何仅在Oracle SQL中更新选定行

如何仅在Oracle SQL中更新选定行,sql,oracle-apex,multiple-columns,tabular-form,Sql,Oracle Apex,Multiple Columns,Tabular Form,所以基本上我有一个表格。其中一列是复选框,另一列称为“隐藏”,包含值“是”或“否” 我有一个隐藏行的按钮,因此用户应该能够使用复选框选择某些行,然后单击隐藏按钮,它应该在“隐藏”列下将用户选择的行更改为“是” 因此,我的SQL如下所示: UPDATE nameOfTable SET hidden = 'Yes' WHERE hidden = 'No'; 显然,对于当前为“否”的所有行,这只会将“隐藏”列更新为“是”,但如何改为只更新用户使用复选框选择的行 update nameoftable

所以基本上我有一个表格。其中一列是复选框,另一列称为“隐藏”,包含值“是”或“否”

我有一个隐藏行的按钮,因此用户应该能够使用复选框选择某些行,然后单击隐藏按钮,它应该在“隐藏”列下将用户选择的行更改为“是”

因此,我的SQL如下所示:

UPDATE nameOfTable
SET hidden = 'Yes'
WHERE hidden = 'No';
显然,对于当前为“否”的所有行,这只会将“隐藏”列更新为“是”,但如何改为只更新用户使用复选框选择的行

update nameoftable 
  set hidden='yes'
   where id =selectedcheckboxid
这里id是表的主键


这里id是表的主键

只需将用户选择的主键(id)的值传递到数据库查询,并将其与主键字段进行比较即可。显然,@SRIRAM的上述答案肯定会对你有用

只需将用户选择的主键(id)的值传递到数据库查询,并将其与主键字段进行比较。显然,@SRIRAM的上述答案肯定会对你有用

您需要使用HTMLBD\u应用程序包来完成这项工作。创建表格表格时,APEX会自动为表格中的每个可编辑字段指定一个id。当您单击submit按钮时,您将需要一个循环表中所选项目的函数。您可以通过检查该表中该字段的HTML(它将是HTML id,看起来像G_FXX,其中X是一个数字),找出APEX为每个字段指定的名称。表中还必须有一些字段来标识每一行(如主键),以便数据库知道要在后端更新哪一行

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;

update语句中的XX将是表中包含行id的字段。这将获得复选框列表,并在列表中循环更新已选中的每一行。

您需要使用HTMLBD\u应用程序包来完成此操作。创建表格表格时,APEX会自动为表格中的每个可编辑字段指定一个id。当您单击submit按钮时,您将需要一个循环表中所选项目的函数。您可以通过检查该表中该字段的HTML(它将是HTML id,看起来像G_FXX,其中X是一个数字),找出APEX为每个字段指定的名称。表中还必须有一些字段来标识每一行(如主键),以便数据库知道要在后端更新哪一行

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;

update语句中的XX将是表中包含行id的字段。这将获得一个复选框列表,并通过列表循环更新已选中的每一行。

因此,我将id更改为表的主键名称…但我得到一个错误,即SELECTEDCHECKBOXID是无效标识符,因此SQL语句将在检测服务器的主键idselectedcheckbox@StephenWalsh希望我的回答能帮助我们,如果我理解正确,你的话。。。其中,主密钥的名称=用户选中的行的主密钥id???但是,我如何知道用户将在哪些行上选中复选框呢?因此,我如何知道这些行的主键id?对不起,如果我的问题很傻,我只是很困惑当用户点击复选框,框中的值与行中的一个匹配。获取该行的主键并传递到查询。因此,我将表的id更改为主键的名称…但我收到一个错误,指出SELECTEDCHECKBOXID是无效标识符,因此SQL语句将忽略SelectedCheckBox id,即表的主键idselectedcheckbox@StephenWalsh希望我的回答能帮助我们,如果我理解正确,你的话。。。其中,主密钥的名称=用户选中的行的主密钥id???但是,我如何知道用户将在哪些行上选中复选框呢?因此,我如何知道这些行的主键id?抱歉,如果我的问题很愚蠢,我只是很困惑当用户单击复选框时,框中的值与行中的一个匹配。获取该行的主键并传递到查询