oracle - Oracle APEX 应用程序包中匿名块的执行点
问题描述
我从 ORACLE APEX 页面中的两个不同执行点调用同一个包的两个不同过程。这个包里面有匿名块。(写在包体的最后)
执行点: On Load:在“Body”区域之前。 调用:pkg_name.proc_1;
项目只读部分。 调用:pkg_name.proc_2;
我已将日志记录在包中的匿名块中以检查其执行情况。我观察到它在页面渲染期间只执行一次。但是在每次我调用包(通过动态操作)的页面渲染之后,匿名块被执行。
我在 oracle apex 中读到,每次调用 DB 时,它都会从池中获得一个新的 DB 连接。
匿名块如何在包中执行 --> 在数据库会话中一次或每次调用包时?
如果在数据库会话中一次,这是否意味着与动态操作不同,整个页面呈现发生在一个数据库会话中?
请帮忙!
谢谢。
解决方案
是的。所有的渲染工作都是在页面交付到您的浏览器之前一起完成的 - 因此您的包的匿名块的单次运行。但是每个 PL/SQL 动态操作都作为单独的 AJAX 请求执行,这意味着每个操作都连接到数据库并独立断开连接。
推荐阅读
- sql - Postgres Sql 查询digits.digits.digits
- java - 如何更改出现在 android studio 窗口顶部的名称?
- mysql - MySQL:选择另一列不同的重复项?
- sql - 多个表上的 sql lite 中的完整外连接
- python - 在python中的单独行中获取子级别标题scrapy
- python - Google Cloud Functions 在没有错误消息的情况下崩溃
- python - 什么是 Lua 等价于 python 的“in”语句?
- javascript - 从 websocket 播放 OPUS 时的声音调度问题
- ios - SwiftUI:如何调整圆形滑块/选取器
- python-3.x - 根据 A 列和 B 列的内容创建 X1-Xn 列