Skip to main content
Skip table of contents

Type Conversions

Data types may be converted from one form to another either explicitly or implicitly. Implicit conversions automatically occur in criteria and expressions to ease development. Explicit data type conversions require the use of the CONVERT function or CAST keyword.

Type conversion considerations:

  • Any type may be implicitly converted to the OBJECT type;
  • The OBJECT type may be explicitly converted to any other type;
  • The NULL value may be converted to any type;
  • Any valid implicit conversion is also a valid explicit conversion;
  • Situations involving literal values that would normally require explicit conversions may have the explicit conversion applied implicitly if no loss of information occurs;
  • When the CData Virtuality Server detects that an explicit conversion cannot be applied implicitly in criteria, the criteria will be treated as false. For example:

    SQL
    SELECT * FROM my.table WHERE created_by = 'not a date'

    Given that created_by is typed as date, rather than converting 'not a date' to a date value, the criteria will remain as a string comparison and therefore be FALSE;

  • Explicit conversions that are not allowed between two types will result in an exception before execution. Allowed explicit conversions may still fail during processing if the runtime values are not convertible.

The CData Virtuality Server conversions of float/double/bigdecimal/timestamp to string rely on the JDBC/Java-defined output formats. Pushdown behaviour attempts to mimic these results but may vary depending on the source type and conversion logic. Care should be taken not to assume the string form in criteria or other places where a variation may cause different results.

Type Conversions

Source typeValid implicit target typesValid explicit target types

string

clob

char, boolean, byte, short, integer, long, biginteger, float, double, bigdecimal, xml

string to xml is equivalent to XMLPARSE(DOCUMENT exp); see also XML Functions: XMLPARSE

char

string

-

boolean

string, byte, short, integer, long, biginteger, float, double, bigdecimal

-

byte

string, short, integer, long, biginteger, float, double, bigdecimal

boolean

short

string, integer, long, biginteger, float, double, bigdecimal

boolean, byte

integer

string, long, biginteger, double, bigdecimal

boolean, byte, short, float

long

string, biginteger, bigdecimal

boolean, byte, short, integer, float, double

biginteger

string, bigdecimal

boolean, byte, short, integer, long, float, double

bigdecimal

string

boolean, byte, short, integer, long, biginteger, float, double

date

string, timestamp

-

time

string, timestamp

-

timestamp

string

date, time

clob

string-

xml

-

string

xml to string is equivalent to XMLSERIALIZE(exp AS STRING); see also XML Functions: XMLSERIALIZE

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.