APEX 替换字符串消失
APEX substitution string disappearing
我在 ORACLE 12.1 上 运行 APEX 5.1。
我有大约。 80 个 APEX 类似应用程序 运行 在同一个数据库上——每个应用程序都使用相同的替换字符串 :CLIENT_ID 及其自己的值(存储应用程序的代码名称)。
:CLIENT_ID 通过 "V" 函数使用:V('CLIENT_ID') 在所有应用程序中调用数据库上的视图和包的共享框架。
突然在其中一个应用程序中,其中一个交互式报告失败,但未设置 :CLIENT_ID。其他应用程序中的所有其他页面或类似页面都运行良好。
- 令人惊讶的是,如果我从 dual 添加一个带有 1 行的自然连接,它就会开始正常工作!但前提是它是自然连接,并且前提是我 select 一个函数的值读取其他一些 APEX 替换变量。
- 如果我通过添加 "natural join (select 1 from dual)" 来更改它,它会一直失败。
- 重新编译使用 :CLIENT_ID 的视图没有帮助。
- 运行 SQL形成一个失败的观点并没有帮助。
- 对 SQL 形成失败视图的一些更改有帮助(但提供了错误的数据,因此不能成为解决方案)
- DBMS_RESULT_CACHE.FLUSH没有帮助
- ALTER SYSTEM FLUSH BUFFER_CACHE 没有帮助
- ALTER SYSTEM FLUSH SHARED_POOL 没有帮助
任何人都可以给我任何提示(除了弹跳数据库)我可以做些什么来进行更多调查吗?
可能是视图正在调用标记为 deterministic
的函数,而实际上该函数在代码中引用了 V('CLIENT_ID')
; non-deterministic.
参见 PL/SQL Function Definition 并搜索 DETERMINISTIC,特别注意
Do not specify DETERMINISTIC for a function whose result depends on the state of session variables or schema objects
这是解释计划随时间变化的结果。此处描述了问题的根本原因:
When "PARTITION LIST SUBQUERY" is in the execution plan something (a bug?) de-instantiates the package
我在 ORACLE 12.1 上 运行 APEX 5.1。
我有大约。 80 个 APEX 类似应用程序 运行 在同一个数据库上——每个应用程序都使用相同的替换字符串 :CLIENT_ID 及其自己的值(存储应用程序的代码名称)。 :CLIENT_ID 通过 "V" 函数使用:V('CLIENT_ID') 在所有应用程序中调用数据库上的视图和包的共享框架。
突然在其中一个应用程序中,其中一个交互式报告失败,但未设置 :CLIENT_ID。其他应用程序中的所有其他页面或类似页面都运行良好。
- 令人惊讶的是,如果我从 dual 添加一个带有 1 行的自然连接,它就会开始正常工作!但前提是它是自然连接,并且前提是我 select 一个函数的值读取其他一些 APEX 替换变量。
- 如果我通过添加 "natural join (select 1 from dual)" 来更改它,它会一直失败。
- 重新编译使用 :CLIENT_ID 的视图没有帮助。
- 运行 SQL形成一个失败的观点并没有帮助。
- 对 SQL 形成失败视图的一些更改有帮助(但提供了错误的数据,因此不能成为解决方案)
- DBMS_RESULT_CACHE.FLUSH没有帮助
- ALTER SYSTEM FLUSH BUFFER_CACHE 没有帮助
- ALTER SYSTEM FLUSH SHARED_POOL 没有帮助
任何人都可以给我任何提示(除了弹跳数据库)我可以做些什么来进行更多调查吗?
可能是视图正在调用标记为 deterministic
的函数,而实际上该函数在代码中引用了 V('CLIENT_ID')
; non-deterministic.
参见 PL/SQL Function Definition 并搜索 DETERMINISTIC,特别注意
Do not specify DETERMINISTIC for a function whose result depends on the state of session variables or schema objects
这是解释计划随时间变化的结果。此处描述了问题的根本原因: When "PARTITION LIST SUBQUERY" is in the execution plan something (a bug?) de-instantiates the package