APEX 替换字符串消失

APEX substitution string disappearing

我在 ORACLE 12.1 上 运行 APEX 5.1。

我有大约。 80 个 APEX 类似应用程序 运行 在同一个数据库上——每个应用程序都使用相同的替换字符串 :CLIENT_ID 及其自己的值(存储应用程序的代码名称)。 :CLIENT_ID 通过 "V" 函数使用:V('CLIENT_ID') 在所有应用程序中调用数据库上的视图和包的共享框架。

突然在其中一个应用程序中,其中一个交互式报告失败,但未设置 :CLIENT_ID。其他应用程序中的所有其他页面或类似页面都运行良好。

任何人都可以给我任何提示(除了弹跳数据库)我可以做些什么来进行更多调查吗?

可能是视图正在调用标记为 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