En Oracle, el ATAN2()
La función devuelve la arcotangente (tangente inversa) de sus dos argumentos.
Sintaxis
La sintaxis es así:
ATAN2(n1 , n2)
Donde n1
puede estar en un rango ilimitado y devuelve un valor en el rango de –pi a pi , dependiendo de los signos de n1
y n2
, expresado en radianes.
Ejemplo
He aquí un ejemplo:
SELECT ATAN2(0.3, 0.7)
FROM DUAL;
Resultado:
ATAN2(0.3,0.7) ____________________________________________ 0.404891786285083423312072929009442616553
Argumento no numérico
Los argumentos pueden ser cualquier tipo de dato numérico o cualquier tipo de dato no numérico que se pueda convertir implícitamente a un tipo de dato numérico.
Esto es lo que sucede cuando proporcionamos un argumento no numérico que no se puede convertir a un tipo de datos numérico:
SELECT ATAN2('One', 0.2)
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT ATAN2('One', 0.2) FROM DUAL Error report - ORA-01722: invalid number
Sin embargo, esto es lo que sucede cuando cambiamos el one
a 1
y mantén las comillas:
SELECT ATAN2('1', '0.2')
FROM DUAL;
Resultado:
ATAN2('1','0.2') ___________________________________________ 1.37340076694501586086127192644496114865
Valores nulos
Si algún argumento es null
, el resultado es null
:
SET NULL 'null';
SELECT
ATAN2(null, 0.3),
ATAN2(0.3, null),
ATAN2(null, null)
FROM DUAL;
Resultado:
ATAN2(NULL,0.3) ATAN2(0.3,NULL) ATAN2(NULL,NULL) __________________ __________________ ___________________ null null null
De forma predeterminada, SQLcl y SQL*Plus devuelven una cadena vacía siempre que null
ocurre como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a ATAN2()
sin pasar ningún argumento devuelve un error:
SELECT ATAN2()
FROM DUAL;
Resultado:
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:
Y pasar el número incorrecto de argumentos da como resultado un error:
SELECT ATAN2(1)
FROM DUAL;
Resultado:
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: