Oracle - PL/SQL - TO_NUMBER Function

TO_NUMBER converts expr to a value of NUMBER datatype. The expr can be a BINARY_DOUBLE value or a value of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 datatype containing a number in the format specified by the optional format model format_mask.


You can specify an expr of BINARY_FLOAT. However, it makes no sense to do so because a float can be interpreted only by its internal presentation.


This function does not support CLOB data directly. However, CLOBs can be passed in as arguments through implicit data conversion.

The syntax for the to_number function is:

to_number( string1, [ format_mask ], [ nls_language ] )

string1 is the string that will be converted to a number.

format_mask is optional. This is the format that will be used to convert string1 to a number.

nls_language is optional. This is the nls language used to convert string1 to a number.

Applies To:

· Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g

For example:

to_number('1210.73', '9999.99')

would return the number 1210.73

to_number('546', '999')

would return the number 546

to_number('23', '99')

would return the number 23

Since the format_mask and nls_language parameters are optional, you can simply convert a text string to a numeric value as follows:

to_number('1210.73'')

would return the number 1210.73