В Oracle, ATAN2() функцията връща арктангенса (обратната допирателна) на двата си аргумента.
Синтаксис
Синтаксисът е така:
ATAN2(n1 , n2)
Където n1 може да бъде в неограничен диапазон и връща стойност в диапазона от –pi до pi , в зависимост от признаците на n1 и n2 , изразено в радиани.
Пример
Ето един пример:
SELECT ATAN2(0.3, 0.7)
FROM DUAL; Резултат:
ATAN2(0.3,0.7) ____________________________________________ 0.404891786285083423312072929009442616553
Нечислов аргумент
Аргументите могат да бъдат всеки числов тип данни или всеки нечисловен тип данни, които могат да бъдат имплицитно преобразувани в числов тип данни.
Ето какво се случва, когато предоставим нечислов аргумент, който не може да бъде преобразуван в числов тип данни:
SELECT ATAN2('One', 0.2)
FROM DUAL; Резултат:
Error starting at line : 1 in command -
SELECT ATAN2('One', 0.2)
FROM DUAL
Error report -
ORA-01722: invalid number
Ето какво се случва обаче, когато променим one до 1 и запазете кавичките:
SELECT ATAN2('1', '0.2')
FROM DUAL; Резултат:
ATAN2('1','0.2')
___________________________________________
1.37340076694501586086127192644496114865 Нулеви стойности
Ако някой аргумент е null , резултатът е null :
SET NULL 'null';
SELECT
ATAN2(null, 0.3),
ATAN2(0.3, null),
ATAN2(null, null)
FROM DUAL; Резултат:
ATAN2(NULL,0.3) ATAN2(0.3,NULL) ATAN2(NULL,NULL)
__________________ __________________ ___________________
null null null
По подразбиране SQLcl и SQL*Plus връщат празен низ всеки път, когато null възниква в резултат на SQL SELECT изявление.
Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.
Неправилен брой аргументи
Извикване на ATAN2() без подаване на аргументи връща грешка:
SELECT ATAN2()
FROM DUAL; Резултат:
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:
И предаването на грешен брой аргументи води до грешка:
SELECT ATAN2(1)
FROM DUAL; Резултат:
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: