В 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: