Functioning of Oracle’s Server result Cache

cacheoracleplsql

I am reading the Oracle concepts doc and have a doubt [about general cache mechanism ] :

PL/SQL function code can include a request to cache its results. Upon invocation of
this function, the system checks the cache. If the cache contains the result from a
previous function call with the same parameter values, then the system returns the
cached result to the invoker and does not reexecute the function body. If the cache
does not contain the result, then the system executes the function body and adds the
result (for these parameter values) to the cache before returning control to the invoker

My doubt:

After a PL/SQL function is executed, its result set is stored in cache.
Then a DDL statement changes the table/index/anything that the function uses…

If I run the same PL/SQL function now, will I get the same result or updated result?

Best Answer

cached results are invalidated and regenerated when transactions occur against the underlying data

I am fairly confident the same would be true for DDL changes but did you mean DML? The long and short is that Oracle is not going to allow an inconsistent result.