Oracle的FIXED_DATE參數

來源:互聯網
上載者:User

標籤:oracle


我們知道,在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>


Oracle的FIXED_DATE參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.