Di Oracle, LN()
fungsi mengembalikan logaritma natural dari argumennya, di mana argumennya lebih besar dari 0
.
Dengan kata lain, ia mengembalikan basis-e logaritma argumennya.
Nomor e , juga dikenal sebagai bilangan Euler, adalah konstanta matematika yang kira-kira sama dengan 2,71828.
Sintaks
Sintaksnya seperti ini:
LN(n)
Dimana n
adalah tipe data numerik atau tipe data nonnumerik apa pun yang dapat secara implisit dikonversi ke tipe data numerik.
Contoh
Ini contohnya:
SELECT LN(73)
FROM DUAL;
Hasil:
LN(73) __________________________________________ 4.2904594411483911290921088574385425709
Inilah yang kami dapatkan ketika kami melewati e :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;
Hasil:
LN(2.718281828459045235360287471352662497757) ________________________________________________ 1
Namun, jumlah tempat pecahan membuat perbedaan dengan contoh ini. Inilah yang terjadi ketika saya menghapus digit terakhir:
SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;
Hasil:
LN(2.71828182845904523536028747135266249775) _______________________________________________ 0.9999999999999999999999999999999999999963
Nilai Negatif
Nilai negatif menghasilkan kesalahan "di luar jangkauan":
SELECT LN(-5.490)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LN(-5.490) FROM DUAL Error report - ORA-01428: argument '-5.49' is out of range
Nol
Melewati 0
juga menghasilkan kesalahan "di luar jangkauan":
SELECT LN(0)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LN(0) FROM DUAL Error report - ORA-01428: argument '0' is out of range
Ekspresi
Argumen dapat mencakup ekspresi seperti ini:
SELECT LN(2 * 3)
FROM DUAL;
Hasil:
LN(2*3) ___________________________________________ 1.79175946922805500081247735838070227272
Argumen Non-Numerik
Argumen dapat berupa tipe data numerik apa pun atau tipe data nonnumerik apa pun yang dapat secara implisit dikonversi ke tipe data numerik.
Berikut adalah contoh yang terjadi jika argumen tidak memenuhi kriteria tersebut:
SELECT LN('Euler')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LN('Euler') FROM DUAL Error report - ORA-01722: invalid number
Argumen Null
LN()
mengembalikan null
jika argumennya null
:
SET NULL 'null';
SELECT LN(null)
FROM DUAL;
Hasil:
LN(NULL) ___________ null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali nilai null muncul sebagai hasil dari SELECT
SQL penyataan.
Namun, Anda dapat menggunakan SET NULL
untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null
harus dikembalikan.
Argumen Tidak Ada
Memanggil LN()
dengan jumlah argumen yang salah, atau tanpa argumen apa pun menghasilkan kesalahan:
SELECT LN()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LN() 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:
Dan:
SELECT LN(10, 2)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LN(10, 2) 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: