En Oracle, BITAND()
la función devuelve un bit a bit AND
de sus dos argumentos.
Sintaxis
La sintaxis es así:
BITAND(expr1, expr2)
Donde expr1
y expr2
son del tipo NUMBER
.
Los argumentos deben estar en el rango -(2) .. ((2)-1). Si un argumento está fuera de este rango, el resultado no está definido.
Además, si alguno de los argumentos es NULL
, el resultado es NULL
.
Ejemplo
He aquí un ejemplo:
SELECT BITAND(6, 3)
FROM DUAL;
Resultado:
BITAND(6,3) ______________ 2
Argumentos no numéricos
Esto es lo que sucede cuando proporcionamos un argumento no numérico que no se puede convertir a un tipo de datos numérico:
SELECT BITAND('six', 3)
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT BITAND('six',3) FROM DUAL Error report - ORA-01722: invalid number
Valores nulos
Si alguno de los argumentos es null
, el resultado es null
:
SET NULL 'null';
SELECT
BITAND(null, 3),
BITAND(6, null)
FROM DUAL;
Resultado:
BITAND(NULL,3) BITAND(6,NULL) _________________ _________________ null null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null
ocurre como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a BITAND()
sin pasar ningún argumento devuelve un error:
SELECT BITAND()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT BITAND() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Y pasar el número incorrecto de argumentos da como resultado un error:
SELECT BITAND(1, 2, 3)
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT BITAND(1, 2, 3) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: