V Oracle, LN()
Funkce vrací přirozený logaritmus svého argumentu, kde je argument větší než 0
.
Jinými slovy, vrátí základ-e logaritmus jeho argumentu.
Číslo e , také známé jako Eulerovo číslo, je matematická konstanta přibližně rovna 2,71828.
Syntaxe
Syntaxe vypadá takto:
LN(n)
Kde n
je jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.
Příklad
Zde je příklad:
SELECT LN(73)
FROM DUAL;
Výsledek:
LN(73) __________________________________________ 4.2904594411483911290921088574385425709
Když projedeme e, dostaneme toto :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;
Výsledek:
LN(2,718281828459045235360287471352662497757) ___________________________________________1 V tomto příkladu je však rozdíl v počtu zlomkových míst. Když odstraním poslední číslici, stane se toto:SELECT LN(2.71828182845904523536028747135266249775) FROM DUAL;
Výsledek:
LN(2,71828182845904523536028747135266249775) ____________________________________________9999999999999999999999999999999999Záporné hodnoty
Záporné hodnoty vedou k chybě „mimo rozsah“:
SELECT LN(-5.490) FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LN(-5.490)FROM DUALEChybová zpráva -ORA-01428:argument '-5.49' je mimo rozsahNula
Předání
0
také vede k chybě „mimo rozsah“:SELECT LN(0) FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LN(0)FROM DUALEHlášení o chybě -ORA-01428:argument '0' je mimo rozsahVýrazy
Argument může obsahovat výrazy jako tento:
SELECT LN(2 * 3) FROM DUAL;
Výsledek:
LN(2*3) ___________________________________________ 1,79175946922805500081247735838070227272Nečíselné argumenty
Argumentem může být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.
Zde je příklad toho, co se stane, když argument nesplňuje tato kritéria:
SELECT LN('Euler') FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LN('Euler')FROM DUALEHlášení o chybě -ORA-01722:neplatné čísloNulové argumenty
LN()
vrátínull
pokud je argumentnull
:SET NULL 'null'; SELECT LN(null) FROM DUAL;
Výsledek:
LN(NULL) ___________ nullVe výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL
SELECT
objeví hodnota null. prohlášení.Můžete však použít
SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězecnull
by měl být vrácen.Chybí argumenty
Volání
LN()
s nesprávným počtem argumentů nebo bez jakýchkoli argumentů vede k chybě:SELECT LN() FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LN()FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce:A:
SELECT LN(10, 2) FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT LN(10, 2)FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce: