17.10 - Implicit Type Conversion - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - Data Types and Literals

Advanced SQL Engine
Teradata Database
Release Number
Release Date
July 2021
Content Type
Programming Reference
Publication ID
English (United States)
SQL Engine performs implicit UDT-to-character conversions for the following operations:
  • Passing arguments to stored procedures, external stored procedures, UDFs, and UDMs
  • Specific system operators and functions identified in other sections of this document, unless the DisableUDTImplCastForSysFuncOp field of the DBS Control Record is set to TRUE

Performing an implicit data type conversion requires that an appropriate cast definition (see Usage Notes) exists that specifies the AS ASSIGNMENT clause.

The target character type of the cast definition does not have to be an exact match to the target character type of the implicit conversion. Vantage can use an implicit cast definition that specifies a CHAR, VARCHAR, or CLOB target type.

If multiple implicit cast definitions exist for converting the UDT to different character types, Vantage uses the implicit cast definition for the character type with the highest precedence. The following list shows the precedence of character types in order from lowest to highest precedence:
  • CHAR
  • CLOB

If no UDT-to-character implicit cast definitions exist, Vantage looks for other cast definitions that can substitute for the UDT-to-character implicit cast definition:

IF the following combination of implicit cast definitions exists … THEN SQL Engine
X       uses the UDT-to-numeric implicit cast definition.

If multiple UDT-to-numeric implicit cast definitions exist, then SQL Engine returns an SQL error.

  X     uses the UDT-to-DATE implicit cast definition.
    X   uses the UDT-to-TIME implicit cast definition.
      X uses the UDT-to-TIMESTAMP implicit cast definition.
X X     reports an error.
X   X  
X     X
  X X  
  X   X
    X X
X X X  
X X   X
X   X X
  X X X

Substitutions are valid because SQL Engine can use the implicit cast definition to cast the UDT to the substitute data type, and then implicitly cast the substitute data type to a character type.