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

Fonction ATAN2() dans Oracle

Dans Oracle, le ATAN2() renvoie l'arc tangente (tangente inverse) de ses deux arguments.

Syntaxe

La syntaxe ressemble à ceci :

ATAN2(n1 , n2)

n1 peut être dans une plage illimitée et renvoie une valeur dans la plage de –pi à pi , selon les signes de n1 et n2 , exprimé en radians.

Exemple

Voici un exemple :

SELECT ATAN2(0.3, 0.7)
FROM DUAL;

Résultat :

                              ATAN2(0.3,0.7) 
____________________________________________ 
   0.404891786285083423312072929009442616553

Argument non numérique

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 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 ATAN2('One', 0.2)
FROM DUAL;

Résultat :

Error starting at line : 1 in command -
SELECT ATAN2('One', 0.2)
FROM DUAL
Error report -
ORA-01722: invalid number

Cependant, voici ce qui se passe lorsque nous changeons le one à 1 et gardez les guillemets :

SELECT ATAN2('1', '0.2')
FROM DUAL;

Résultat :

                           ATAN2('1','0.2') 
___________________________________________ 
   1.37340076694501586086127192644496114865 

Valeurs nulles

Si un argument est null , le résultat est null :

SET NULL 'null';

SELECT 
    ATAN2(null, 0.3),
    ATAN2(0.3, null),
    ATAN2(null, null)
FROM DUAL;

Résultat :

   ATAN2(NULL,0.3)    ATAN2(0.3,NULL)    ATAN2(NULL,NULL) 
__________________ __________________ ___________________ 
              null               null                null

Par défaut, SQLcl et SQL*Plus renvoient une chaîne 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 ATAN2() sans passer aucun argument renvoie une erreur :

SELECT ATAN2()
FROM DUAL;

Résultat :

Error starting at line : 1 in command -
SELECT ATAN2()
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 ATAN2(1)
FROM DUAL;

Résultat :

Error starting at line : 1 in command -
SELECT ATAN2(1)
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: