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

Fonction POWER() dans Oracle

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: