【问题标题】:getting sysdate on entering a value in another feild in oracle apex在 oracle apex 的另一个字段中输入值时获取 sysdate
【发布时间】:2019-09-25 14:25:30
【问题描述】:

我正在使用 oracle apex 主详细信息表单。我有一个名为 detail 的表,在该表上创建了此表单。我想在状态中输入值后立即通过 sysdate 更新 time_stamp 的值。 请指导我我该怎么做? 我的桌子是:

DID number(10,0),
status char(1),
time_stamp timestamp);```

【问题讨论】:

    标签: oracle-apex


    【解决方案1】:

    前段时间我也遇到了同样的问题。据我了解,有两种方法。

    1) 不要在表格上创建表单,而是为 apex 中的每个表单字段创建单独的字段,并让用户在那里输入数据。然后创建一个过程来更新提交时的数据。

    2) 您可以在明细表上创建触发器,如下所述

    create or replace trigger detail_update_trig
         before update or insert
         on detail
         FOR EACH ROW
    declare
    begin
        :new.timestamp:=sysdate;
    end;
    /
    

    虽然可能有更好的方法来解决这个问题,但这对我来说是有效的。

    希望这能解决你的问题。

    【讨论】:

    • 谢谢阿里夫。如果我在状态列上放了一个复选框,并且一旦我单击复选框,它就会将时间戳值更改为 sysdate。你能告诉我如何在顶级表单中做到这一点吗?
    • 您想更新前端 (Apex) 的时间戳。正确的 ?我在这里有点困惑。
    • 你不能创建一个绑定到复选框的动态操作,以便在选中该框时可以使用所需的值填充字段吗?
    • Yes Arif .....我想在单击该特定行的复选框后立即更新前端的时间戳
    • 我尝试过这样做,但无法到达任何地方。另外,我可能错了,但我注意到在主详细信息表单中,无法更新子表。虽然您可以添加数据(插入行),但不能更新子项中已经存在的数据。存在的复选框用于选择要删除的行。但是您可以使用我上面提供的触发器解决方案来更新父表数据。对于子表,您可以将time_stamp 列的默认值设置为sysdate,并将字段类型设置为文本字段并且始终为只读。因此,当您插入时,会显示最新日期。
    猜你喜欢
    • 2012-11-03
    • 2020-06-07
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多