sql >> Base de Datos >  >> RDS >> Oracle

Función ATAN2() en Oracle

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: