eygle Eygle.
Case 2005-12-12

Oracle Diagnostics:Why sysdate is fixed?

今天一个朋友在MSN上问到一个问题:为什么我的SYSDATE不变了?

他查询SYSDATE的值一直停留在2005-03-01 11:41:15。感觉很奇怪。

忍不住指导他研究一下,先是从系统级诊断,发现没有问题。

再从数据库角度来诊断,发现:

select current_date from dual; 的输出是正确的,而

select sysdate from dual; 却是不正确的。

 

猜测是某个参数导致了系统日期被固化,让他传来alert文件,果然发现了一个此前未注意到的参数: FIXED_DATE,

  core_dump_dest           = /u01/app/oracle/admin/unicode/cdump
  fixed_date               = 01-MAR-05
  sort_area_size           = 524288
  db_name                  = unicode

文档上的解释为:

FIXED_DATE

Parameter type

String

Syntax

FIXED_DATE = YYYY-MM-DD-HH24:MI:SS (or the default Oracle date format)

Default value

There is no default value.

Parameter class

Dynamic: ALTER SYSTEM

FIXED_DATE enables you to set a constant date that SYSDATE will always return instead of the current date. 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.

找到了这个参数也就找到了答案!

By eygle 2005-12-12 23:21 评论 (2)
eygle
eygle

前Oracle ACE Director,云和恩墨创始人。技术为骨,历史为脉,人文为魂。

返回首页

2 Comments

这个比较有趣,也是第一次知道还有这个参数,好玩,哈哈,应该用sql_trace跟踪一下,看看设置参数前后,oracle做了什么。我懒了,eygle来跟踪一下吧。

这个跟踪不到的,是个内部操作!