sql >> Databasteknik >  >> RDS >> Oracle

ATAN2() Funktion i Oracle

I Oracle, ATAN2() funktion returnerar arctangens (invers tangens) för dess två argument.

Syntax

Syntaxen ser ut så här:

ATAN2(n1 , n2)

Där n1 kan vara i ett obegränsat intervall och returnerar ett värde i intervallet –pi till pi , beroende på tecknen på n1 och n2 , uttryckt i radianer.

Exempel

Här är ett exempel:

SELECT ATAN2(0.3, 0.7)
FROM DUAL;

Resultat:

                              ATAN2(0.3,0.7) 
____________________________________________ 
   0.404891786285083423312072929009442616553

Icke-numeriskt argument

Argumenten kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.

Så här händer när vi tillhandahåller ett icke-numeriskt argument som inte kan konverteras till en numerisk datatyp:

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 här är vad som händer när vi ändrar one till 1 och behåll citattecken:

SELECT ATAN2('1', '0.2')
FROM DUAL;

Resultat:

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

Nullvärden

Om något argument är null , resultatet är 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 returnerar SQLcl och SQL*Plus en tom sträng när null uppstår som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Inkorrekt antal argument

Anropar ATAN2() utan att skicka några argument returnerar ett fel:

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:

Och att skicka fel antal argument resulterar i ett fel:

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:

  1. Fixar Lås väntetid har överskridits; prova att starta om transaktionen för en Mysql-tabell som har fastnat?

  2. PostgreSQL temporära tabeller

  3. Vilka färdigheter och kunskaper behöver databasdesigners?

  4. Vad är användningen av SQL GROUP BY-uttalande?