Subprogram Side Effects
A subprogram has side effects if it changes anything except the values of its own local variables. For example, a subprogram that changes any of the following has side effects:
-
Its own
OUT
orIN
OUT
parameter -
A global variable
-
A public variable in a package
-
A database table
-
The database
-
The external state (by invoking
DBMS_OUTPUT
or sending e‐mail, for example)
Side effects can prevent the parallelization of a query, yield order-dependent (and therefore, indeterminate) results, or require that package state be maintained across user sessions.
Minimizing side effects is especially important when defining a result-cached function or a stored function for SQL statements to invoke.
See Also:
Oracle Database Development Guide for information about controlling side effects in PL/SQL functions invoked from SQL statements