I Oracle er ATAN2()
funktion returnerer arctangens (invers tangent) af dens to argumenter.
Syntaks
Syntaksen ser sådan ud:
ATAN2(n1 , n2)
Hvor n1
kan være i et ubegrænset område og returnerer en værdi i området –pi til pi , afhængigt af tegnene på n1
og n2
, udtrykt i radianer.
Eksempel
Her er et eksempel:
SELECT ATAN2(0.3, 0.7)
FROM DUAL;
Resultat:
ATAN2(0.3,0.7) ____________________________________________ 0.404891786285083423312072929009442616553
Ikke-numerisk argument
Argumenterne kan være enhver numerisk datatype eller enhver ikke-numerisk datatype, der implicit kan konverteres til en numerisk datatype.
Her er, hvad der sker, når vi angiver et ikke-numerisk argument, der ikke kan konverteres til en numerisk datatype:
SELECT ATAN2('One', 0.2)
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT ATAN2('One', 0.2) FROM DUAL Error report - ORA-01722: invalid number
Men her er hvad der sker, når vi ændrer one
til 1
og behold citaterne:
SELECT ATAN2('1', '0.2')
FROM DUAL;
Resultat:
ATAN2('1','0.2') ___________________________________________ 1.37340076694501586086127192644496114865
Nul-værdier
Hvis et argument er null
, resultatet er null
:
SET NULL 'null';
SELECT
ATAN2(null, 0.3),
ATAN2(0.3, null),
ATAN2(null, null)
FROM DUAL;
Resultat:
ATAN2(NULL,0.3) ATAN2(0.3,NULL) ATAN2(NULL,NULL) __________________ __________________ ___________________ null null null
Som standard returnerer SQLcl og SQL*Plus en tom streng hver gang null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Forkert antal argumenter
Kalder ATAN2()
uden at sende nogen argumenter returnerer en fejl:
SELECT ATAN2()
FROM DUAL;
Resultat:
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:
Og at sende det forkerte antal argumenter resulterer i en fejl:
SELECT ATAN2(1)
FROM DUAL;
Resultat:
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: