If you try changing a static parameter value in the SPFILE used at instance startup, you would get the following error message:
SQL> alter system set audit_trail=DB scope=both; * ERROR at line 1: ORA-02095: specified initialization parameter cannot be modified
SCOPE=BOTH applies the modification at the instance level and in the spfile used at startup. Use the value that applies the modification in the spfile only, provided that the spfile was used at startup:
SQL> alter system set audit_trail=DB scope=spfile; System altered.
If no spfile was used at startup, you would get another error message such as:
SQL> alter system set audit_trail=DB scope=spfile; alter system set audit_trail=DB scope=spfile * ERROR at line 1: ORA-32001: write to SPFILE requested but no SPFILE specified at startup
According to the definition of a static parameter, it cannot be modified during instance life, but only in the init or spfile parameter file. Note that the default for the scope clause is BOTH, meaning that if you do not specify a SCOPE, the update will be applied to the running instance and written to the spfile. Therefore, it will become a permanent change.
An attempt to change a static parameter will fail unless SCOPE is specified as SPFILE. The default SCOPE is BOTH (the running instance and the spfile). If the instance is started with a pfile, then SCOPE=SPFILE will fail.