Oracle
 sql >> Database >  >> RDS >> Oracle

ATAN2() Funzione in Oracle

In Oracle, ATAN2() La funzione restituisce l'arcotangente (tangente inversa) dei suoi due argomenti.

Sintassi

La sintassi è questa:

ATAN2(n1 , n2)

Dove n1 può trovarsi in un intervallo illimitato e restituisce un valore compreso nell'intervallo –pi a pi , a seconda dei segni di n1 e n2 , espresso in radianti.

Esempio

Ecco un esempio:

SELECT ATAN2(0.3, 0.7)
FROM DUAL;

Risultato:

                              ATAN2(0.3,0.7) 
____________________________________________ 
   0.404891786285083423312072929009442616553

Argomento non numerico

Gli argomenti possono essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.

Ecco cosa succede quando forniamo un argomento non numerico che non può essere convertito in un tipo di dati numerico:

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

Risultato:

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

Tuttavia, ecco cosa succede quando cambiamo il one a 1 e mantieni le virgolette:

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

Risultato:

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

Valori Nulli

Se un argomento è null , il risultato è null :

SET NULL 'null';

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

Risultato:

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

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono una stringa vuota ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Conteggio argomenti errato

Chiamando ATAN2() senza passare alcun argomento restituisce un errore:

SELECT ATAN2()
FROM DUAL;

Risultato:

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:

E il passaggio del numero errato di argomenti genera un errore:

SELECT ATAN2(1)
FROM DUAL;

Risultato:

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: