sql >> Base de Datos >  >> RDS >> Oracle

Función BITAND() en Oracle

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: