sql >> Database >  >> RDS >> Oracle

ATAN2() Functie in Oracle

In Oracle, de ATAN2() functie retourneert de arctangens (inverse tangens) van zijn twee argumenten.

Syntaxis

De syntaxis gaat als volgt:

ATAN2(n1 , n2)

Waar n1 kan in een onbegrensd bereik zijn en retourneert een waarde in het bereik van –pi naar pi , afhankelijk van de tekens van n1 en n2 , uitgedrukt in radialen.

Voorbeeld

Hier is een voorbeeld:

SELECT ATAN2(0.3, 0.7)
FROM DUAL;

Resultaat:

                              ATAN2(0.3,0.7) 
____________________________________________ 
   0.404891786285083423312072929009442616553

Niet-numeriek argument

De argumenten kunnen elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.

Dit is wat er gebeurt als we een niet-numeriek argument opgeven dat niet kan worden geconverteerd naar een numeriek gegevenstype:

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

Resultaat:

Error starting at line : 1 in command -
SELECT ATAN2('One', 0.2)
FROM DUAL
Error report -
ORA-01722: invalid number

Dit is echter wat er gebeurt als we de one . wijzigen naar 1 en behoud de aanhalingstekens:

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

Resultaat:

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

Null-waarden

Als een argument null is , het resultaat is null :

SET NULL 'null';

SELECT 
    ATAN2(null, 0.3),
    ATAN2(0.3, null),
    ATAN2(null, null)
FROM DUAL;

Resultaat:

   ATAN2(NULL,0.3)    ATAN2(0.3,NULL)    ATAN2(NULL,NULL) 
__________________ __________________ ___________________ 
              null               null                null

Standaard retourneren SQLcl en SQL*Plus een lege tekenreeks wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Onjuist aantal argumenten

Bellen ATAN2() zonder het doorgeven van argumenten geeft een fout:

SELECT ATAN2()
FROM DUAL;

Resultaat:

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:

En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:

SELECT ATAN2(1)
FROM DUAL;

Resultaat:

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. Ongeldige Oracle-URL opgegeven:OracleDataSource.makeURL

  2. Introductie van nieuwe functie:Always On-beschikbaarheidsgroep

  3. SQLite-gebruikersmachtigingen

  4. Meerdere beperkingen in tabel:Hoe krijg ik alle schendingen?