我试图在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;
Called
不过,我的示例每次都会打印。
我还尝试了一些网上找到的其他示例,但没有使用缓存。
我试过ALTER SYSTEM SET result_cache_max_size = 10485760;
还是不行。
我试过ALTER SESSION SET result_cache_mode=FORCE;
(这应该没有必要) - 没有帮助。
SELECT dbms_result_cache.status FROM dual;
总是返回DISABLED
。
我究竟做错了什么?