Dans Oracle, le POWER()
La fonction renvoie son premier argument élevé à la puissance de son second argument.
Syntaxe
La syntaxe ressemble à ceci :
POWER(n2, n1)
Chaque argument peut être n'importe quel type de données numérique ou n'importe quel type de données non numérique qui peut être implicitement converti en un type de données numérique.
Les deux arguments peuvent être n'importe quel nombre, cependant, si n2
est négatif, alors n1
doit être un entier.
Exemple
Voici un exemple pour illustrer :
SELECT POWER(8, 2)
FROM DUAL;
Résultat :
POWER(8,2) _____________ 64
Et ici, il utilise une partie fractionnaire dans le deuxième argument :
SELECT POWER(8, 2.5)
FROM DUAL;
Résultat :
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Cependant, l'utilisation d'une partie fractionnaire n'est possible que lorsque le premier argument est positif.
Valeurs négatives
Comme mentionné, si le premier argument est négatif, alors le deuxième argument doit être un entier :
SELECT POWER(-8, 2)
FROM DUAL;
Résultat :
POWER(-8,2) ______________ 64
Voici ce qui se passe lorsque le deuxième nombre n'est pas un entier :
SELECT POWER(-8, 2.5)
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Arguments non numériques
Les arguments peuvent être n'importe quel type de données numérique ou n'importe quel type de données non numérique qui peut être implicitement converti en un type de données numérique.
Voici un exemple de ce qui se passe lorsque les arguments ne satisfont pas à ce critère :
SELECT POWER('Gosh', 'Dang')
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT POWER('Gosh', 'Dang') FROM DUAL Error report - ORA-01722: invalid number
Arguments nuls
POWER()
renvoie null
si un argument est null
:
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL;
Résultat :
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL) ________________ ________________ ___________________ null null null
Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois qu'une valeur nulle 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é.
Arguments manquants
Appel de POWER()
sans aucun argument génère une erreur :
SELECT POWER()
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT POWER() 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 la même chose s'applique lorsque vous l'appelez avec trop d'arguments :
SELECT POWER(10, 2, 3)
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT POWER(10, 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: