I came across an article that describes a mechanism in Oracle that automatically performs a function that has traditionally been implemented “manually”. It caches results from functions so they only have to be called once for each value sent to the function. This works for version 11.1 and newer and version 11.2 offers some improvements. The benefit of the way Oracle implements this is that the mechanism works across sessions, i.e. if function f(x) is called in session 1 then the function does not have to be called again in session 2 because the result is cached if RESULT_CACHE is correctly configured. The article offers a very good explanation of these concepts: https://oracle-base.com/articles/11g/cross-session-plsql-function-result-cache-11gr1.