如何启用功能结果缓存

Pet*_*ang 6 oracle caching oracle11g

我正在尝试在11.2.0上使用Oracle的函数结果缓存,所以我做了以下测试:

CREATE OR REPLACE FUNCTION get_test_value
  RETURN NUMBER
  RESULT_CACHE
AS
BEGIN
  dbms_output.put_line( 'Called' );
  RETURN 0;
END;

SELECT get_test_value FROM dual;
Run Code Online (Sandbox Code Playgroud)

不过,我的例子Called每次都打印出来.
我还尝试了一些在线发现的其他例子,但没有使用缓存.

我试过ALTER SYSTEM SET result_cache_max_size = 10485760;
还是不行.

我试过ALTER SESSION SET result_cache_mode=FORCE;(这不应该是必要的) - 没有帮助.

SELECT dbms_result_cache.status FROM dual;总是回来DISABLED.

我究竟做错了什么?

APC*_*APC 16

你使用的是哪个版本?缓存功能仅在Enterprise Edition中可用,因此如果您在标准版安装上尝试此功能,则无法使用.它位于许可指南中.