微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ORACLE APEX 创建登录触发器

如何解决ORACLE APEX 创建登录触发器

我想在任何用户登录时使用特定条件(where 子句)更新我的表的状态..

create or replace TRIGGER AUTO_COMPLETE
AFTER logoN ON SCHEMA
BEGIN
    UPDATE SESSIONS
    SET SESSIONS.STATUS = 5
    WHERE SESSIONS.STATUS =2
    AND TO_CHAR(SESSIONS.SESSION_DATE,'MM-DD-YYYY HH24.MM') < TO_CHAR (SYSDATE,'MM-DD-YYYY HH24.MM');
END AUTO_COMPLETE;

不幸的是,这个触发器没有被触发,我没有错误!!

解决方法

我认为最好的方法是在您的应用设置中,您可以使用绑定变量来验证用户名或其他内容。

Shared components / Security Attributes / Database Session  

enter image description here

或者另一种选择是在认证后创建一个进程

enter image description here

,

Apex 是无状态的,参见第一段 here。这意味着为每个页面渲染或后期处理创建一个新的数据库会话。我认为当用户浏览应用程序时,这会使登录触发不断触发。

您可以在您的应用程序中创建一个带有“身份验证后”点的应用程序进程。在用户进行身份验证后,该应用程序只会触发一次。

将此功能与数据库分开是有意义的。当您通过 sqldeveloper 连接或休息时也会触发登录触发器 - 这会影响性能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。