Oracle的FIXED_DATE参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle的FIXED_DATE参数相关的知识,希望对你有一定的参考价值。
我们知道,在Oracle数据库中正常执行 select sysdate from dual 都可以返回当前主机的系统时间。
正常修改系统时间,对应的查询结果也会变成修改后的系统时间。
现在遇到一个问题:测试系统修改了主机系统时间,数据库查询 select sysdate from dual 返回的时间和所在系统的主机时间相差很大,进一步排查发现返回的时间是固定不变的。
最终发现是Oracle有参数可以使得sysdate一直返回固定的时间,供某些测试场景使用。该库也是因为有其他测试人员设置了该参数,而其他测试人员不知道,产生了疑惑。
官方对这个参数的描述如下:
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>
以上是关于Oracle的FIXED_DATE参数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Toad for Oracle 中使用自定义代码片段?
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段
片段(Java) | 机试题+算法思路+考点+代码解析 2023
Visual Studio 自定义代码片段在方法定义的参数列表中不起作用
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段