在pl/sql中实现缓存层的解决方案

zer*_*kms 5 oracle caching oracle11g oracle11gr2

我有一个带有1个参数(日期)的函数,它封装了1个查询

SELECT COUNT(*)
  FROM tbl
 WHERE some_date_field BETWEEN param_date - INTERVAL '0 1:00:00' DAY TO SECOND
                           AND param_date
Run Code Online (Sandbox Code Playgroud)

我想要做的是用ttl = 1分钟缓存此查询的结果.缓存的结果应该在所有会话中共享,而不仅仅是当前会话.

有什么建议?

PS:是的,我知道oracle函数结果缓存,但它不符合要求.
PPS:是的,我们可以用一些值创建第二个人工参数,date in format of yyyymmddhh24mi因为它每分钟都会改变,我们可以使用函数结果缓存,但我希望它是一个允许我隐藏缓存依赖关系的解决方案.

Rob*_*ijk 5

我将使用全局应用程序上下文,以及刷新间隔为1分钟的作业来设置上下文.

PS:INTERVAL'1'小时INTERVAL'0 1:00:00'第二天更短更有意义