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!!!