 # Oracle Mathematical Functions

Do you need to use sine, cosine, or tangent functions in your queries or database code?

Oracle has plenty of those functions you can use.

Learn how to use them and see some examples in this article.

## What Are The Mathematical Functions?

The mathematical functions are those that calculate the sine, cosine, and tangent of other numbers. There are also some other similar functions, that calculate the “arc cosine” and other concepts that I barely remember from high school maths. • SIN: Calculate the sine of a number. The sine is the ratio of the length of the side of the triangle opposite the angle to the length of the triangle’s hypotenuse.
• COSIN: Calculate the cosine of a number, which is the ratio of the side adjacent to the acute angle to the hypotenuse.
• TAN: Calculate the tangent of a number, which is the ratio of the side opposite the acute angle to the side adjacent to the angle.
• SINH: Calculate the hyperbolic sine of a number
• COSH: Calculate the hyperbolic cosine of a number
• TANH: Calculate the hyperbolic tangent of a number
• ASIN: Calculate the arc sine of a number
• ACOS: Calculate the arc cosine of a number
• ATAN: Calculate the arc tangent of a number
• ATAN2: Calculate the arc tangent of two numbers
• LN: Calculate the natural logarithm of a number.
• EXP: Calculate the value of e raised to a specified power. The value of e is a mathematical constant, and it is roughly equal to 2.71828183.

If you’re not sure what a hyperbolic or arc sine, cosine, or tangent is, you can find out here.

## Syntax and Parameters

The syntax of most of these functions are the same:

SIN (number)
COS (number)
TAN (number)
SINH (number)
COSH (number)
TANH (number)
ASIN (number)
ACOS (number)
ATAN (number)
LN (number)
EXP (number)

The parameters of the SIN and similar functions are function are:

• number (mandatory): The number used to calculate the return value (e.g. sine or arc tangent, depending on the function).

However, the ATAN2 syntax is slightly different:

ATAN2 ( number1 [/|,] number2 )

For the ATAN2 function, it can be written as either number1,number2 or number1/number2. Both formats produce the same results.

For ATAN2, the parameters are:

• number1 (mandatory): The first number to use in the arc tangent calculation.
• number2 (mandatory): The second number to use in the arc tangent calculation.

There are some things to note about the parameters for all of these functions:

• The number parameters can be any numeric data type. If the data type is a BINARY_FLOAT, the return type is a BINARY_DOUBLE. Otherwise, the return type is the same as the type of the parameter.
• For ASIN, ACOS, and ATAN, the function returns the same data type as the input data type (unless the input is a BINARY_FLOAT, then the function returns a BINARY_DOUBLE).
• For ATAN2, the function returns NUMBER (unless either of the inputs is a BINARY_FLOAT, then the function returns a BINARY_DOUBLE).
• For COSH, the function returns a DECIMAL value.
• For ASIN and ACOS, the number must be in the range of -1 to 1.

## Mathematical Function Examples

Here are some examples of these functions.

### SIN Function Examples

``````SELECT
SIN(20) AS sin_20,
SIN(1) AS sin_1,
SIN(6) AS sin_6
FROM dual;``````

Result:

 SIN_20 SIN_1 SIN_6 0.9129452507 0.8414709848 -0.2794154982

### COS Function Examples

``````SELECT
COS(3.141) AS cos_31,
COS(1) AS cos_1,
COS(5.2) AS cos_52
FROM dual;``````

Result:

 COS_31 COS_1 COS_52 -0.9999998244 0.540302305 0.46851667

### TAN Function Examples

``````SELECT
TAN(4) AS tan_4,
TAN(19) AS tan_19,
TAN(1.2) AS tan12
FROM dual;``````

Result:

 TAN_4 TAN_19 TAN_12 1.157821282 0.1515894706 2.572151622

### SINH Function Examples

``````SELECT
SINH(1) AS sinh_1,
SINH(0) AS sinh_0,
SINH(4.3) AS sinh_43
FROM dual;``````

Result:

 SINH_1 SINH_0 SINH_43 1.175201194 0 36.84311257

### COSH Function Examples

``````SELECT
COSH(1) AS cosh_1,
COSH(0) AS cosh_0,
COSH(15.8) AS cosh_158
FROM dual;``````

Result:

 COSH_1 COSH_0 COSH_158 1.543080635 1 3637665.979

### TANH Function Examples

``````SELECT
TANH(1) AS tanh_1,
TANH(0) AS tanh_0,
TANH(9.1) AS tanh_91
FROM dual;``````

Result:

 TANH_1 TANH_0 TANH_91 0.761594156 0 0.9999999751

### ASIN Function Example

``````SELECT
ASIN(-0.4) AS asin_value
FROM dual;``````

Result:

 ASIN_VALUE -0.4115168461

### ACOS Function Example

``````SELECT
ACOS(0.31) AS acos_value
FROM dual;``````

Result:

 ACOS_VALUE 1.255603294

### ATAN Function Example

``````SELECT
ATAN(1.1) AS atan_value
FROM dual;``````

Result:

 ATAN_VALUE 0.8329812667

### ATAN2 Function Example

``````SELECT
ATAN2(3, 1.6) AS atan2_value
FROM dual;``````

Result:

 ATAN2_VALUE 1.080839001

### LN Function Examples

``````SELECT
LN(10) AS ln_10,
LN(50) AS ln_50,
LN(2.1) AS ln_2_1,
LN(102.9) AS ln_102_9
FROM dual;``````

Results:

 LN_10 LN_50 LN_2_1 LN_102_9 2.302585093 3.912023005 0.7419373447 4.633757643

### EXP Function Examples

``````SELECT EXP(1) AS exp_1,
EXP(2) AS exp_2,
EXP(5) AS exp_5,
EXP(4.2) AS exp_42,
EXP(-1) AS exp_m1
FROM dual;``````

Results:

 EXP_1 EXP_2 EXP_5 EXP_42 EXP_M1 2.7182818284 7.38905609893065022 148.4131591025 66.68633104 0.3678794411714