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: