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

时间:2015-07-27 07:21:36

标签: oracle view oracle-apex

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

但我必须显示其他表中的详细信息,仅用于显示。

    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 个答案:

答案 0 :(得分:1)

只要只更新其中一个表,就可以使用没有视图的2个表创建表格形式。

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

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

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

中详细了解相关信息

答案 1 :(得分:0)

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

双击要编辑的表格报告区域下的列,在Simple Checkbox

部分下为标题Display as设置字段类型Column Attributes

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

1 =>经过

0 =>未检查

这就是所有人的需要。