15.00 - Character-to-UDT Conversion - Teradata Database

Teradata Database SQL Functions, Operators, Expressions, and Predicates

Product
Teradata Database
Release Number
15.00
Content Type
Programming Reference
Publication ID
B035-1145-015K
Language
English (United States)
Last Update
2018-09-24

Character-to-UDT Conversion

Purpose

Converts a character data string to a UDT.

CAST Syntax

where:

 

Syntax element …

Specifies …

character_expression

a character expression to be cast to a UDT.

UDT_data_definition

the UDT type to which character_expression is to be converted.

ANSI Compliance

This is ANSI SQL:2011 compliant.

As an extension to ANSI, CAST permits the use of data attribute phrases such as FORMAT.

Usage Notes

Explicit character-to-UDT conversion using Teradata conversion syntax is not supported.

Data type conversions involving UDTs require appropriate cast definitions for the UDTs. To define a cast for a UDT, use the CREATE CAST statement. For more information on CREATE CAST, see SQL Data Definition Language.

Implicit Character-to-UDT Conversion

Teradata Database 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 book, 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. Teradata Database 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, Teradata Database 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, Teradata Database looks for other cast definitions that can substitute:

     

    IF the following combination of implicit cast definitions exists …

    THEN Teradata Database …

    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 Teradata Database 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 Teradata Database 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.

    Related Topics

    For details on data types and data attributes, see SQL Data Types and Literals.