参数我们可以在v$parameter中查到。
select name,value,ISSES_MODIFIABLE,issys_modifiable
from v$system_parameter;
这里有两个列ISSES_MODIFIABLE和issys_modifiable
分别对应的是session级别修改的参数和system级别修改的参数。
如果ISSES_MODIFIABLE=true,表明这个参数可以在session级别可以修改,并且立即生效。false就是不能修改了,呵呵。
alter session set xxx=xxx ;
如果issys_modifiable=immediate,表示这个参数可以在system立即修改,并且立即生效。
alter system set xxx=xxx ;
若如果issys_modifiable=deferred,表示这个参数不能在直接修改在内存中,需要加scope=spfile,重启后才能生效。
alter system set xxx=xxx scope=spfile ;
若issys_modifiable=false,跟deferred相同。
本来deferred为什么不能修改,只能加scope选项,在重启后生效?这点不知道为什么跟oracle在reference中讲的不一样。
DEFERRED - Parameter can be changed with ALTER SYSTEM regardless of
the type of parameter file used to start the instance. The change
takes effect in subsequent sessions.
我使用的版本是:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit
Production
判断参数到底是动态的还是静态的,我们一般可以通过v$parameter视图来查看:
select name,value,ISSES_MODIFIABLE,issys_modifiable from
v$system_parameter;
这里有两个列isses_modificable和issys_modifiable
分别对应的是session级别修改的参数和system级别修改的参数。
如果isses_modificable=true,表明这个参数可以在session级别可以修改,并且立即生效。false就是不能修改了。
可以使用alter session修改.
对于issys_modifiable的取值我们可以通过下面的一段文字来表述
select name,issys_modifiable from v$parameter
IMMEDIATE - Parameter can be changed with ALTER SYSTEM regardless
of the type of parameter file used to start the
instance. The change takes effect immediately.
DEFERRED - Parameter can be changed with ALTER SYSTEM regardless of
the type of parameter file used to start the instance. The change
takes effect in subsequent sessions.
FALSE - Parameter cannot be changed with ALTER SYSTEM unless a
server parameter file was used to start the instance. The change
takes effect in subsequent instances.
(注释:转载)