【发布时间】:2021-02-10 23:19:58
【问题描述】:
是否有可能在存储过程之前自动执行一些 PL/SQL 代码?诸如“on-before”之类的执行?
按照业务逻辑,每个存储过程都应该在一些名为“登录”的步骤之后执行。这不是登录数据库而是登录产品,我们无法改变这种行为,因为系统是由另一个团队开发的。我们不应该忘记每次都称其为“登录”。
在 Oracle 中是否有任何解决方案可以自动化此类事情?包是否有类似“初始化”部分的内容?
【问题讨论】:
-
您是否考虑过编写执行“登录”功能的包装程序,然后调用第 3 方程序?
-
另外,这个功能是否需要在每个会话中只运行一次?还是在每个程序执行之前?如果只是一次,您可以考虑编写一个 AFTER LOGON 触发器。
-
我的看法是这样的:我们不能忘记每次都称它为“登录”。这就是你一直在做的事情。跨度>
-
关于包装器 - 是的,我们现在正在使用这种方式,但是当新手忘记它们时会出现问题。登录后触发是一个有趣的想法,我会试试看。
-
@Del 感谢您的建议,但 AFTER LOGON 触发器无法帮助我,因为我们总是登录到数据库,但如何保证我们登录到系统?在执行程序之前,我们确实需要一些步骤。
标签: oracle stored-procedures plsql package initialization