- 1580-12-31 12:29:59.001234000 is converted to 1580-12-05 12:29:59.000999
- 4900-01-01 22:00:00.000 is converted to 4900-02-02 22:00:00
- 9999-01-01 20:00:00.000 is converted to 9999-03-22 21:00:00
Teradata has identified the cause for this as Infa SDK's bug in handling getLong and setLong functions based on the following note in Informatica® Corporation PowerCenter® Version 8.1.1 SP5 Release Notes, March 2008.
“CR 92842: Cannot use getLong or setLong APIs for values higher than maximum integer and smaller than maximum long value in a Java Custom transformation: The getLong and setLong APIs in the InputBuffer interface for a Java Custom transformation do not return the correct values. The values are not correct if the values returned by the APIs are larger than the maximum Java integer value but smaller than the maximum Java long value.”
Use this workaround in the PowerCenter Designer to export or import time or timestamp values in the distant past or far future:
-
Open the Source Analyzer and make these changes:
- Double-click the table to open the Edit Tables dialog box.
- Click the Columns tab.
- For the time field, change its type to varchar and its precision to 15.
- For the timestamp field, change the type to varchar and its precision to 26.
- Save the repository.
-
Open the Target Designer and make these changes for the Target field:
- Double-click the table to open the Edit Tables dialog box.
- Click the Columns tab.
- For the time field, change its type to varchar and its precision to 15.
- For the timestamp field, change the type to varchar and its precision to 26.
- Save the repository.