【问题标题】:oracle forms FRM-40401 error raises when "execute_query" issued after "commit"oracle forms FRM-40401 错误在“commit”之后发出“execute_query”时引发
【发布时间】:2019-10-11 10:24:11
【问题描述】:

我的表单在单击时具有按钮,将执行智能触发器来更新某些列,但是当我尝试在提交以下语句后使用时:

执行查询;

我明白了

FRM-40401:没有要保存的更改

如何解决?

【问题讨论】:

    标签: oracle oracle11g oracleforms


    【解决方案1】:

    EXECUTE_QUERY 无法提出该消息;是 COMMIT 这样做的。

    如果您需要它(因为您必须保存所做的更改),那么一个简单的选项就是“屏蔽”它,例如

    :system.message_level := 25;
    commit;
    :system.message_level := 0;
    

    换句话说:将消息级别设置为较高的级别,这样您收到的消息就不会显示(因为它的消息级别低于25)。提交后,将系统消息级别恢复为默认值(0,表示“显示所有消息”)。

    【讨论】:

    • 但现在似乎execute_query没有执行,因为我在更新后使用它来刷新数据块但现在它根本没有效果
    • 您是否导航到应该刷新的数据块?如何?使用GO_BLOCK('that_block_name'); 如果focus 在其他地方,则不会发生任何事情。此外,请确保您所做的更改确实保存到数据库中。如何?建立新连接(通过 SQL*Plus 或 SQL Developer 或您使用的任何工具)并从表中选择数据。
    • 没错,我忘了go_block。谢谢你的帮助
    猜你喜欢
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多