官方对这个参数的描述如下:
FIXED_DATE enables you to set a constant date that SYSDATE will always return instead of the current date. To undo a fixed date setting, specify FIXED_DATE=NONE. This parameter is useful primarily for testing. The value can be in the format shown above or in the default Oracle date format, without a time.
简单试验验证下,的确如此:
--1. 设定会话时间显示格式:
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
--2. 查询sysdate值,是正常返回数据库所在主机的系统时间:
SQL>
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-03-31 10:16:10
SQL> /
SYSDATE
-------------------
2017-03-31 10:16:18
--3. 设置fixed_date参数为固定一个值:
SQL> alter system set fixed_date = '2017-04-01 12:00:00';
System altered.
--4. 再次查询发现sysdate时间为设置的值,且固定不变:
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-04-01 12:00:00
SQL> /
SYSDATE
-------------------
2017-04-01 12:00:00
--5. 设置fixed_date参数为none,使sysdate正常显示所在主机的系统时间:
SQL> alter system set fixed_date = none;
System altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-03-31 10:20:11
SQL> /
SYSDATE
-------------------
2017-03-31 10:20:14
SQL>