Implicit Numeric-to-UDT Conversion - Teradata Vantage

Teradata® VantageCloud Lake

Deployment
VantageCloud
Edition
Lake
Product
Teradata Vantage
Published
January 2023
Language
English (United States)
Last Update
2024-04-03
dita:mapPath
phg1621910019905.ditamap
dita:ditavalPath
pny1626732985837.ditaval
dita:id
phg1621910019905
Analytics Database performs implicit Numeric-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

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

The source numeric type of the cast definition does not have to be an exact match to the source numeric type of the implicit conversion. Vantage can use an implicit cast definition that specifies a BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL/NUMERIC, NUMBER, or REAL/FLOAT/DOUBLE target type.

If multiple implicit cast definitions exist for converting different numeric types to the UDT, Analytics Database uses the implicit cast definition for the numeric type with the highest precedence. The following list shows the precedence of numeric types in order from lowest to highest precedence:
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL/NUMERIC
  • NUMBER
  • REAL/FLOAT/DOUBLE

If no numeric-to-UDT implicit cast definitions exist, Analytics Database looks for other cast definitions that can substitute.

Implicit Cast Definition Combination Analytics Database Action
DATE-to-UDT Character-to-UDT  
X   Uses DATE-to-UDT implicit cast definition.
  X Uses character-to-UDT implicit cast definition.

Character type cannot be CLOB.

If multiple character-to-UDT implicit cast definitions exist, Analytics Database returns SQL error.

X X Reports an error.

Substitutions are valid because Vantage can implicitly cast a numeric type to the substitute data type, and then use the implicit cast definition to cast from the substitute data type to the UDT.