位逻辑函数

使用位逻辑函数来执行命名的位运算。
位逻辑函数
元素 描述 限制 语法
int8_expr 可转化为 INT8 值的数值表达式 对于 BITNOT,最大的大小减 1 表达式

这些函数的参数可为可转换为 INT8 数据类型的任何数值数据类型。

除了带有单个参数的 BITNOT 之外,这些位逻辑函数都有两个可转换为 INT8 值的参数。

如果两个参数都有相同的整数类型,则返回值的数据类型与参数的类型相同。如果两个参数的整数类型不同,则返回值为精度较高的整数类型。例如,如果第一个参数类型为 INT,而第二个参数类型为 INT8,则返回值的类型为 INT8。

如果参数为任何其他数值类型,诸如 DECIMAL、SMALLFLOAT、FLOAT 或 MONEY,或那些类型的某种组合,则返回值数据类型为 DECIMAL(32)。

如果使用主变量,且在准备时刻不知道参数的类型,则假设两个参数都是数据类型 INTEGER,且返回值为 INTEGER。在执行时刻准备之后,如果为主变量提供不同的数据类型值,则 GBase 8s 发出 -9750 错误。要防止发生这样的情况,您可通过使用强制转型来指定主变量数据类型,如下列 ESQL/C 程序片断所示:
sprintf(query1, ", 
   bitand(  ?::int8,  ?::int8) from mytab");
EXEC SQL prepare selectq from :query;
EXEC SQL declare select_cursor cursor for selectq;
EXEC SQL open select_cursor 
   using :hostvar_int8_input1, :hostvar_int8_input2;
	
EXEC SQL fetch select_cursor into :var_int8_output;
1 GBase 8s 扩展