Output is correct.
1.1.1900
31.12.2999
Select I used to reproduce the error is based on VIEW using SELECT over DB link to DG4ODBC gateway. The point is, that DATE column is returned in correct format according to DUMP function.
Typ=12 Len=7: 120,113,12,8,1,1,1
According to Oracle's Doc ID. 69028.1
DATE values are always stored in 7 bytes, excluding the length byte, within a datafile. These bytes store the century, year, month, day, hour, minute, and second details respectively. The following is the definition of Oracle's DATE storage structure:
BYTE Meaning
---- -------
1 Century -- stored in excess-100 notation
2 Year
3 Month -- stored in 0 base notation
4 Day
5 Hour -- stored in excess-1 notation
6 Minute
7 Second
Note that the century and year components are stored in 'excess 100 format', which means that 100 must be deducted from the byte's value. If a negative number results, then we've got a BC date at which point we take the absolute
number. Also, to avoid ever having a zero byte, 1 is added to the hour, minute and second bytes. Therefore, 1 must be detected to get the correct value.
For example, take the following date again:
17-DEC-1980 00:00:00
we would expect this date to be stored internally as follows:
119, 180, 12, 17, 01, 01, 01
There is also external DATE representation (Typ=13) "equivalent" to C-style structure .. but this is out of this topic.
Regards,
Stanislav