Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

LOG() Fungsi di Oracle

Di Oracle, LOG() fungsi mengembalikan logaritma, basis n2 , dari n1 , di mana n2 adalah argumen pertama dan n1 adalah yang kedua.

Sintaks

Sintaksnya seperti ini:

LOG(n2, n1)

Dimana n2 dapat berupa nilai positif apa pun selain 0 atau 1 , dan n1 adalah nilai positif apa pun.

Contoh

Ini contohnya:

SELECT LOG(16, 73)
FROM DUAL;

Hasil:

                                 LOG(16,73) 
___________________________________________ 
   1.54745613972000430746600429203996036707

Nilai Negatif

Nilai negatif menghasilkan kesalahan "di luar jangkauan":

SELECT LOG(-16, 73)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG(-16, 73)
FROM DUAL
Error report -
ORA-01428: argument '-16' is out of range

Sama untuk argumen kedua:

SELECT LOG(16, -73)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG(16, -73)
FROM DUAL
Error report -
ORA-01428: argument '-73' is out of range

Nol

Melewati 0 juga menghasilkan kesalahan "di luar jangkauan":

SELECT LOG(0, 73)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG(0, 73)
FROM DUAL
Error report -
ORA-01428: argument '0' is out of range

Dan lagi, hal yang sama berlaku untuk argumen kedua:

SELECT LOG(16, 0)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG(16, 0)
FROM DUAL
Error report -
ORA-01428: argument '0' is out of range

Lulus 1

Melewati 1 untuk argumen kedua menghasilkan 0 :

SELECT LOG(16, 1)
FROM DUAL;

Hasil:

   LOG(16,1) 
____________ 
           0

Melewati 1 untuk argumen pertama menghasilkan kesalahan "di luar jangkauan":

SELECT LOG(1, 2)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG(1, 2)
FROM DUAL
Error report -
ORA-01428: argument '1' is out of range

Ekspresi

Argumen dapat mencakup ekspresi seperti ini:

SELECT LOG(10 + 6, 12 * 30)
FROM DUAL;

Hasil:

                            LOG(10+6,12*30) 
___________________________________________ 
   2.12296327408241867769444932934625579835 

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 LOG('Homer', 'Symptom')
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG('Homer', 'Symptom')
FROM DUAL
Error report -
ORA-01722: invalid number

Argumen Null

LOG() mengembalikan null jika ada argumen null :

SET NULL 'null';

SELECT 
    LOG(null, 1024),
    LOG(16, null),
    LOG(null, null)
FROM DUAL;

Hasil:

   LOG(NULL,1024)    LOG(16,NULL)    LOG(NULL,NULL) 
_________________ _______________ _________________ 
             null            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 LOG() dengan jumlah argumen yang salah, atau tanpa argumen apa pun menghasilkan kesalahan:

SELECT LOG()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG()
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 LOG(10, 2, 3)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOG(10, 2, 3)
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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LISTAGG() Fungsi di Oracle

  2. Dapatkan daftar semua tabel di Oracle?

  3. TNSPING OK tapi sqlplus memberikan ORA-12154?

  4. penggunaan fungsi rownum dengan> masuk ke oracle

  5. Bagaimana cara memanggil fungsi Oracle atau prosedur tersimpan menggunakan kerangka kerja persistensi pegas?