Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função ATAN2() no Oracle


No Oracle, o ATAN2() A função retorna o arco tangente (tangente inversa) de seus dois argumentos.

Sintaxe


A sintaxe fica assim:
ATAN2(n1 , n2)

Onde n1 pode estar em um intervalo ilimitado e retorna um valor no intervalo de –pi para pi , dependendo dos sinais de n1 e n2 , expresso em radianos.

Exemplo


Aqui está um exemplo:
SELECT ATAN2(0.3, 0.7)
FROM DUAL;

Resultado:
                              ATAN2(0.3,0.7) 
____________________________________________ 
   0.404891786285083423312072929009442616553

Argumento não numérico


Os argumentos podem ser qualquer tipo de dados numérico ou qualquer tipo de dados não numérico que possa ser convertido implicitamente em um tipo de dados numérico.

Veja o que acontece quando fornecemos um argumento não numérico que não pode ser convertido em um tipo de dados 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

No entanto, eis o que acontece quando alteramos o one para 1 e mantenha as citações:
SELECT ATAN2('1', '0.2')
FROM DUAL;

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

Valores nulos


Se algum argumento for null , o resultado é 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

Por padrão, SQLcl e SQL*Plus retornam uma string vazia sempre que null ocorre como resultado de um SQL SELECT demonstração.

No entanto, você pode usar SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido.

Contagem incorreta de argumentos


Chamando ATAN2() sem passar nenhum argumento retorna um erro:
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:

E passar o número errado de argumentos resulta em um erro:
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: