Starting 20c, One can keep expression in Initialization Parameters. some examples from documentation as below
Initialization parameter expressions can contain the following constructs:Integer values
OLAP_PAGE_POOL_SIZE = 1073741824
Decimal values, only when they are part of a numeric operation
CPU_COUNT = 8 * 0.6
If the operation resolves to a decimal value, then the result is truncated to an integer value. This example would set CPU_COUNT
to 4
.
An integer value followed by an indicator that the integer is expressed in kilobytes (k
or K
), megabytes (m
or M
), gigabytes (g
or G
), terabytes (t
or T
), petabytes (p
or P
), or exabytes (e
or E
) OLAP_PAGE_POOL_SIZE = 900m
MEMORY_TARGET = 2G
Other parameter names
JOB_QUEUE_PROCESSES = PROCESSES
The binary operators for multiplication (*
), division (/
), modulo (%
), addition (+
), and subtraction (-
)
SHARED_SERVERS = MAX_SHARED_SERVERS / 2 DATA_GUARD_MAX_LONGIO_TIME = DATA_GUARD_MAX_IO_TIME + 10 * 3
Operator precedence: the multiplication, division, and modulo operators are evaluated first, from left to right, and then the addition and subtraction operators are evaluated from left to right.If the expression resolves to a decimal value, then the result is truncated to an integer value.
Parentheses, which allow you to override operator precedence
SHARED_SERVERS = (MAX_SHARED_SERVERS - 1) / 2 DATA_GUARD_MAX_LONGIO_TIME = (DATA_GUARD_MAX_IO_TIME + 10) * 3
The MIN
and MAX
functions. These functions take two operands and return the minimum and maximum value, respectively.
AQ_TM_PROCESSES = MIN(40, PROCESSES * .1) SESSIONS = MAX(200, PROCESSES * 1.5)
Environment variable values, which must be preceded by the dollar sign ($
)CPU_COUNT = $SYSTEM_CPU/5
You can specify an expression when using any of the following methods to set an initialization parameter:
For example:
ALTER SESSION SET AQ_TM_PROCESSES = 'MIN(40, PROCESSES * .1)';
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 'PROCESSES' SCOPE=BOTH;
Follow Me!!!