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:10SQL>?/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:00SQL>?/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:11SQL>?/SYSDATE ------------------- 2017-03-31?10:20:14SQL>本文轉自xmgdc51CTO博客,原文鏈接:http://blog.51cto.com/12953214/1942939 ,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Oracle的FIXED_DATE参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux常用命令——tar
- 下一篇: 常见汉字Unicode编码