15.00 - UDT-to-Byte 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)

UDT-to-Byte Conversion

Purpose

Converts a UDT expression to a byte data type.

CAST Syntax

where:

 

Syntax element …

Specifies …

UDT_expression

an expression that results in a UDT data type.

For details on expressions that can result in UDT data types, see “SQL UDF” on page 1318.

byte_data_definition

the BLOB, BYTE or VARBYTE byte type followed by optional FORMAT, NAMED, or TITLE attribute phrases to which UDT_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.

Teradata Conversion Syntax

where:

 

Syntax element …

Specifies …

UDT_expression

an expression that results in a UDT data type.

For details on expressions that can result in UDT data types, see “SQL UDF” on page 1318.

data_attribute

one of the following optional data attributes:

  • FORMAT
  • NAMED
  • TITLE
  • byte_data_type

    the BLOB, BYTE or VARBYTE byte type to which UDT_expression is to be converted.

    ANSI Compliance

    This is a Teradata extension to the ANSI SQL:2011 standard.

    Usage Notes

    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 Type Conversion

    Teradata Database performs implicit UDT-to-byte 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 UDT-to-byte data type conversion requires a cast definition (see “Usage Notes”) that specifies the following:

  • the AS ASSIGNMENT clause
  • a BYTE, VARBYTE, or BLOB target data type
  • The target data type of the cast definition does not have to be an exact match to the target of the implicit type conversion.

    If multiple implicit cast definitions exist for converting the UDT to different byte types, Teradata Database uses the implicit cast definition for the byte type with the highest precedence. The following list shows the precedence of byte types in order from lowest to highest precedence:

  • BYTE
  • VARBYTE
  • BLOB
  • Example  

    Consider the following table definition, where image is a UDT:

       CREATE TABLE history
          (id INTEGER
          ,information image );

    Assuming an appropriate cast definition exists for the image UDT, the following statement converts the values in the information column to BYTE:

       SELECT CAST (information AS BYTE(20)) 
       FROM history
       WHERE id = 100121;

    Related Topics

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