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: