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: