Last year our firm (AMIS) celebrated its 15th anniversary. This year Oracle celebrates its 30th year of its existence. In that reflective light, I remembered a nice “Easter egg” regarding the database software. A long time ago, I guess somewhere in 1997, 1998, I was working as a DBA consultant for a big Dutch banking cooperation. Preparing for the upcoming year 2000 in those days we tested a lot of applications and databases regarding the year 2000 problems (among others date formats regarding: YY, YYYY, RRRR…) etc.
An UNIX (AIX) system administrator of this banking cooperation accidentally did a reset to the default date/time in those days of an AIX (version 3.2?) machine (RS/6000) to 01-01-1970. I am not absolutely sure, but I think it was this date. He did this while I was starting an Oracle database (Oracle V. 7.3.x) and to my surprise I got an Oracle error from the database that said something in the lines of…”Sorry, but this date / time setting can’t be correct, because the Oracle Company didn’t exist in those days”.
The other day I tested some OS / Oracle Database combinations, in the light of the anniversaries and for some fun, regarding this phenomena to see if I could reproduce the message.
I am a little bit disappointed now, because I couldn’t.
Some of the lessons I learned.
- RedHat 3.0 can’t be set to a date before a date with 010100001970 (01 January 0000 Hours 1970).
- On SUSE 9.3 this is possible, strangely enough, it can’t be set to a date before 010100001902 (01 January 0000 Hours 1902).
Regarding the databases I checked on these systems:
- One crashed with a segmentation fault regarding every setting before the year 2000 (an Service Request has been logged).
- One (an Oracle Enterprise Edition 10.2.0.2.0 database) returned an error with the message “ORA-01513: invalid current time returned by operating system” if the date was set to a year before the 2000.
In short, those new versions of the Oracle databases are year 2000 compliant; they won’t start before this date (which on itself is also a kind of an “Easter egg”). I am wondering if phenomena is related to the year 2000 problems or not or just a new restriction of the database or the operating system. It is a shame though I can’t (yet) imitate the brilliant ORA message, which I thought, had a lot of humor in it.
Small addition
My college Alex Nuijten asked me if I also had done my small test on my Oracle 4.1 environment, which I still treasure. Besides the new versions I also did a small test on that environment, but because this environment with MSDOS 6.2 doesn’t want to reset it’s date before 1980, this isn’t a real problem for the 4.1 database. This database has in it’s header when it starts: “Copyright (c) 1997, 1980, 1981, 1982” so my guess was that it at least could handle the 1980 year data (and probably 1979), three years after Oracle has been founded.
I haven’t tried it and now you mention it, I remember the article and/or Oracle-L listing, but I can imagine that it isn’t available anymore in those new versions of Oracle.
Have you tried the unix ‘strings’ function on the executables and libraries in the oracle_home? It is supposed to extract all human legible strings from an exe. I believe Jared Still has an example on his website and I think he has responded on Oracle-l in a similar thread concerning messages. I’m sorry, but I can’t afford the time right now to investigate myself.