BITAND Argument Types and Rules - 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
BITAND is an overloaded scalar function. The data type of the target_arg parameter can be one of the following:
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL
  • NUMBER
  • VARBYTE(n)
DECIMAL input is implicitly converted to NUMBER(38,0). target_arg is not defined for DECIMAL, but is defined for NUMBER(38,0). Due to UDF implicit type conversion rules, DECIMAL is accepted as input.

The data type of the bit_mask_arg parameter varies depending on the data type of the target_arg parameter. The following (target_arg, bit_mask_arg) input combinations are permitted:

target_arg type bit_mask_arg type
BYTEINT BYTE(1)
BYTEINT BYTEINT
SMALLINT BYTE(2)
SMALLINT SMALLINT
INTEGER BYTE(4)
INTEGER INTEGER
BIGINT BYTE(8)
BIGINT BIGINT
NUMBER(38,0) VARBYTE(16)
NUMBER(38,0) NUMBER(38,0)
VARBYTE(n) VARBYTE(n)

The maximum supported size (n) for VARBYTE is 8192 bytes.

All expressions passed to this function must either match these declared data types or can be converted to these types using the implicit data type conversion rules that apply to UDFs. For example, BITAND(BYTEINT, INTEGER) can be implicitly converted to BITAND(INTEGER,INTEGER) and is therefore is allowed.

The UDF implicit type conversion rules are more restrictive than the implicit type conversion rules typically used by Vantage. An argument that cannot be converted to one of the declared data types by following UDF implicit conversion rules must be explicitly cast.

If any argument cannot be converted to one of the declared data types, an error is returned indicating that no function exists that matches the DML UDF expression submitted.