# PLSQL | LOG Function

• Last Updated : 25 Oct, 2019

The PLSQL LOG function is used for returning the logarithm of n base m. The LOG function accepts two parameters which are used to calculate the logarithmic value. The LOG function returns a value of the numeric data type.

This function takes as an argument any numeric data type as well as any non-numeric data type that can be implicitly converted to a numeric data type. If in any case, the argument is BINARY_FLOAT or BINARY_DOUBLE, then the LOG function returns BINARY_DOUBLE, otherwise it returns number.

Attention reader! Don’t stop learning now. Learn SQL for interviews using SQL Course  by GeeksforGeeks.

Syntax:

`LOG( m, n )`

Parameters Used:

m – It is used to specify the base number. It should be any positive numeric value except 0 and 1.

n – It is used to specify the number whose logarithmic value needs to be calculated with a specific base. It should be a positive numeric value.

Return Value:
The LOG function in PLSQL returns a numeric value.

Supported Versions of Oracle/PLSQL:

1. Oracle 12c
2. Oracle 11g
3. Oracle 10g
4. Oracle 9i
5. Oracle 8i

Example-1: Using positive numeric values as arguments in the LOG function.

```DECLARE
Test_Number1 number := 9;
Test_Number2 number := 3;

BEGIN
dbms_output.put_line(LOG(Test_Number1,
Test_Number2));

END; ```

Output:

`0.5 `

Example-2: Using positive numeric values as arguments in the LOG function.

```DECLARE
Test_Number1 number := 3;
Test_Number2 number := 9;

BEGIN
dbms_output.put_line(LOG(Test_Number1,
Test_Number2));

END; ```

Output:

`2 `

Example-3: Using same positive numeric values in both the arguments in the LOG function.

```DECLARE
Test_Number1 number := 3;
Test_Number2 number := 3;

BEGIN
dbms_output.put_line(LOG(Test_Number1,
Test_Number2));

END; ```

Output:

`1 `

Example-4: Using zero in the base value argument in the LOG function.

```DECLARE
Test_Number1 number := 0;
Test_Number2 number := 3;

BEGIN
dbms_output.put_line(LOG(Test_Number1,
Test_Number2));

END; ```

Output:

`numeric or value error `

The above example throws error because the LOG function doesn’t except 0 and 1 as base values in the argument.

Example-5: Using LOG function with select query.

`SELECT LOG(2, 8) "Log base 2 of 8" FROM DUAL; `

Output:

`3 `