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)
Où 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: