从视图中更新原始 table 中的数据

Update data in original table from view

我有一个 table,其中只有一列需要更新,它只是一个要更新的标志。

但我还必须显示其他 table 的详细信息,那只是为了显示。

    Table1:
    emp_id
    emp_name....
    emp_status (will be updated via tabular forms)

    Table2:
    emp_bank_id
    emp_bank_account
    ....

记录应以报告格式显示,并将 emp_status 值更新为“1”(之前为 0),用户已勾选复选框,因此将更新多条记录

我可以创建一个视图,然后选择使用表格形式仅更新此列吗?

您可以在没有视图的情况下使用 2 个 table 创建表格表格,只要其中一个 table 正在更新。

只需创建您的表格表单,选择您需要更新的 table,然后更改查询以包含其他 table 中的列,并更改包含的 table 中的所有列] 到 纯文本

如果您更喜欢使用视图,您应该创建一个 而不是触发器 ,如下所示:

CREATE OR REPLACE TRIGGER iof_MY_TRIGGER
INSTEAD OF UPDATE
ON v_tbls
FOR EACH ROW

BEGIN

  UPDATE table1 
     SET emp_status = :NEW.EMP_STATUS
   WHERE emp_id = :NEW.EMP_ID;

END iof_MY_TRIGGER;
/

要在您的表格表单中包含一个复选框,请将您的表格表单更改为如下内容:

SELECT emp_id
,      emp_name
,      apex_item.checkbox2(5, emp_status, DECODE(emp_status, 1,'CHECKED',0))
  FROM table1

您可以在 here

中阅读更多相关信息

对我有用的解决方案是,将字段设置为 editable,其余部分在报告中显示为纯文本。

双击要编辑的表格报告区域下的列,将字段类型设置为Simple Checkbox for title Display as under the section Column Attributes

现在,在 List of Values 下的同一页面上,输入 1,0

1=> 已检查

0=> 未选中

这就是一个需要。