Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction BITAND() dans Oracle

Dans Oracle, le BITAND() la fonction renvoie un AND au niveau du bit de ses deux arguments.

Syntaxe

La syntaxe ressemble à ceci :

BITAND(expr1, expr2)

expr1 et expr2 sont de type NUMBER .

Les arguments doivent être compris dans l'intervalle -(2) .. ((2)-1). Si un argument est hors de cette plage, le résultat est indéfini.

Aussi, si l'un des arguments est NULL , le résultat est NULL .

Exemple

Voici un exemple :

SELECT BITAND(6, 3)
FROM DUAL;

Résultat :

   BITAND(6,3) 
______________ 
             2

Arguments non numériques

Voici ce qui se passe lorsque nous fournissons un argument non numérique qui ne peut pas être converti en un type de données numérique :

SELECT BITAND('six', 3)
FROM DUAL;

Résultat :

Error starting at line : 1 in command -
SELECT BITAND('six',3)
FROM DUAL
Error report -
ORA-01722: invalid number

Valeurs nulles

Si l'un des arguments est null , le résultat est null :

SET NULL 'null';

SELECT 
    BITAND(null, 3),
    BITAND(6, null)
FROM DUAL;

Résultat :

   BITAND(NULL,3)    BITAND(6,NULL) 
_________________ _________________ 
             null              null 

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null se produit à la suite d'un SQL SELECT déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Nombre d'arguments incorrects

Appel de BITAND() sans passer d'argument renvoie une erreur :

SELECT BITAND()
FROM DUAL;

Résultat :

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:

Et passer le mauvais nombre d'arguments entraîne une erreur :

SELECT BITAND(1, 2, 3)
FROM DUAL;

Résultat :

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: