You cannot use Teradata TPT with 16-byte decimal data types


When reading from Teradata with the TPT=YES and FASTEXPORT=YES options, TPT will not be used if the data returned contains more than 18 digits.

As a result, the following messages occur:

Teradata connection: TPT FastExport:  TPTAPI_INFRA: API306: Error: Conflicting data length for column(columnumber) - "columnname". Source column's data length is (8) Target column's data length is (16).

NOTE: Teradata connection: TPT (the default) was NOT used, the FastExport utility was used instead.

Cause

SAS uses 8-byte double-precision floating-point for numeric values. The corresponding Teradata data type is FLOAT.

Newer versions of Teradata support 16-byte decimal, so a numeric overflow error occurs if a database row includes data with more than 18 significant digits.

Workaround

See SAS Note 61632, "The "Conflicting data length..." error occurs when you use SAS/ACCESS® Interface to Teradata with Teradata 15.10 and 16 clients" for a workaround for this issue.