17.10 - Implicit Character-to-UDT Conversion - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - Data Types and Literals

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
July 2021
Content Type
Programming Reference
Publication ID
B035-1143-171K
Language
English (United States)
SQL Engine performs implicit Character-to-UDT conversions for the following operations:
  • UPDATE
  • INSERT
  • 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 source character type of the cast definition does not have to be an exact match to the source character type of the implicit conversion. SQL Engine can use an implicit cast definition that specifies a CHAR, VARCHAR, or CLOB source type.

If multiple implicit cast definitions exist for converting different character types to the UDT, SQL Engine 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
  • VARCHAR
  • CLOB

For non-CLOB character types, if no Character-to-UDT implicit cast definitions exist, SQL Engine looks for other cast definitions that can substitute.

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

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

  X     uses the DATE-to-UDT implicit cast definition.
    X   uses the TIME-to-UDT implicit cast definition.
      X uses the TIMESTAMP-to-UDT 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
X X X X

Substitutions are valid because Vantage can implicitly cast the non-CLOB character type to the substitute data type, and then use the implicit cast definition to cast from the substitute data type to the UDT.