Oracle的FIXED_DATE参数
我們知道,在Oracle數(shù)據(jù)庫中正常執(zhí)行 select sysdate from dual 都可以返回當前主機的系統(tǒng)時間。
正常修改系統(tǒng)時間,對應(yīng)的查詢結(jié)果也會變成修改后的系統(tǒng)時間。
現(xiàn)在遇到一個問題:測試系統(tǒng)修改了主機系統(tǒng)時間,數(shù)據(jù)庫查詢 select sysdate from dual 返回的時間和所在系統(tǒng)的主機時間相差很大,進一步排查發(fā)現(xiàn)返回的時間是固定不變的。
最終發(fā)現(xiàn)是Oracle有參數(shù)可以使得sysdate一直返回固定的時間,供某些測試場景使用。該庫也是因為有其他測試人員設(shè)置了該參數(shù),而其他測試人員不知道,產(chǎn)生了疑惑。
官方對這個參數(shù)的描述如下:
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.?設(shè)定會話時間顯示格式: SQL>?alter?session?set?nls_date_format='yyyy-mm-dd?hh24:mi:ss';Session?altered.--2.?查詢sysdate值,是正常返回數(shù)據(jù)庫所在主機的系統(tǒng)時間: SQL> SQL>?select?sysdate?from?dual;SYSDATE ------------------- 2017-03-31?10:16:10SQL>?/SYSDATE ------------------- 2017-03-31?10:16:18--3.?設(shè)置fixed_date參數(shù)為固定一個值: SQL>?alter?system?set?fixed_date?=?'2017-04-01?12:00:00';System?altered.--4.?再次查詢發(fā)現(xiàn)sysdate時間為設(shè)置的值,且固定不變: SQL>?select?sysdate?from?dual;SYSDATE ------------------- 2017-04-01?12:00:00SQL>?/SYSDATE ------------------- 2017-04-01?12:00:00--5.?設(shè)置fixed_date參數(shù)為none,使sysdate正常顯示所在主機的系統(tǒng)時間: SQL>?alter?system?set?fixed_date?=?none;System?altered.SQL>?select?sysdate?from?dual;SYSDATE ------------------- 2017-03-31?10:20:11SQL>?/SYSDATE ------------------- 2017-03-31?10:20:14SQL>本文轉(zhuǎn)自xmgdc51CTO博客,原文鏈接:http://blog.51cto.com/12953214/1942939 ,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Oracle的FIXED_DATE参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux常用命令——tar
- 下一篇: 常见汉字Unicode编码