【问题标题】:Update data in original table from view从视图中更新原始表中的数据
【发布时间】:2015-07-27 07:21:36
【问题描述】:

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

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

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

    Table2:
    emp_bank_id
    emp_bank_account
    ....

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

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

【问题讨论】:

    标签: oracle view oracle-apex


    【解决方案1】:

    只要只更新其中一个表,您就可以使用这 2 个表创建表格形式而无需视图。

    只需创建您的表格表单,选择您需要更新的表格,然后更改查询以包含另一个表格中的列,并将包含的表格中的所有列更改为纯文本。。 p>

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

    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 保存在列中。
    • 编辑了我的回复,包括如何在表格形式中创建复选框。
    • 感谢您的帮助,我尝试了您更新的解决方案,但它对我不起作用。而是将状态标记为可更新,将字段设置为复选框,并在此列的值列表下添加 1,0。它对我有用。
    【解决方案2】:

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

    双击要编辑的表格报表区域下的列,将Display as部分下的标题Display as的字段类型设置为Simple Checkbox

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

    1=> 已检查

    0=> 未选中

    这就是一个人的需要。

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多