【问题标题】:Execution point of Anonymous blocks in package in Oracle APEX ApplicationsOracle APEX 应用程序包中匿名块的执行点
【发布时间】:2019-09-09 16:14:21
【问题描述】:

我从 ORACLE APEX 页面中的两个不同执行点调用同一个包的两个不同过程。这个包里面有匿名块。 (写在包体的最后)

执行点:加载时:“Body”区域之前。 调用:pkg_name.proc_1;

项目只读部分。 调用:pkg_name.proc_2

我已将日志记录到包中的匿名块中以检查其执行情况。我观察到它在页面渲染期间只执行一次。 但是在每次我调用包(通过动态操作)的页面渲染之后,匿名块被执行。

我在 oracle apex 中读到,每次调用 DB 时,它都会从池中获得一个新的 DB 连接。

匿名块如何在包中执行 --> 一次在数据库会话中或每次调用包时?

如果在数据库会话中出现一次,这是否意味着整个页面呈现发生在一个数据库会话中,这与动态操作不同?

请帮忙!

谢谢。

【问题讨论】:

标签: oracle plsql oracle-apex


【解决方案1】:

是的。所有渲染工作在页面交付到浏览器之前一起完成 - 因此包的匿名块的单次运行。但是每个 PL/SQL 动态操作都作为单独的 AJAX 请求执行,这意味着每个操作都连接到数据库并独立断开连接。

【讨论】:

  • 准确总结我的问题的答案。页面的整个呈现发生在单个数据库会话中。所以匿名块只被调用一次。感谢澄清
猜你喜欢
  • 1970-01-01
  • 2015-03-02
  • 2014-04-25
  • 1970-01-01
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
  • 2022-01-03
相关资源
最近更新 更多