6 Data Types
This chapter presents data types that are recognized by Oracle and available for use within SQL.
This chapter includes the following sections:
Overview of Data Types
A data type is a classification of a particular type of information or data. Each value manipulated by Oracle has a data type. The data type of a value associates a fixed set of properties with the value. These properties cause Oracle to treat values of one data type differently from values of another.
The data types recognized by Oracle are:
ANSI-supported data types
{ CHARACTER [VARYING] (size) | { CHAR | NCHAR } VARYING (size) | VARCHAR (size) | NATIONAL { CHARACTER | CHAR } [VARYING] (size) | { NUMERIC | DECIMAL | DEC } [ (precision [, scale ]) ] | { INTEGER | INT | SMALLINT } | FLOAT [ (size) ] | DOUBLE PRECISION | REAL }
Oracle built-in data types
{ character_datatypes | number_datatypes | long_and_raw_datatypes | datetime_datatypes | large_object_datatypes | rowid_datatypes }
Oracle-supplied data types
{ any_types | XML_types | spatial_types | media_types }
User-defined data types
User-defined data types use Oracle built-in data types and other user-defined data types to model the structure and behavior of data in applications.
See Also:
Oracle Database SQL Language Reference for more information about data types
Oracle Built-In Data Types
This section describes the kinds of Oracle built-in data types.
character_datatypes
{ CHAR [ (size [ BYTE | CHAR ]) ] | VARCHAR2 (size [ BYTE | CHAR ]) | NCHAR [ (size) ] | NVARCHAR2 (size) }
datetime_datatypes
{ DATE | TIMESTAMP [ (fractional_seconds_precision) ] [ WITH [ LOCAL ] TIME ZONE ] | INTERVAL YEAR [ (year_precision) ] TO MONTH | INTERVAL DAY [ (day_precision) ] TO SECOND [ (fractional_seconds_precision) ] }
large_object_datatypes
{ BLOB | CLOB | NCLOB | BFILE }
long_and_raw_datatypes
{ LONG | LONG RAW | RAW (size) }
number_datatypes
{ NUMBER [ (precision [, scale ]) ] | FLOAT [ (precision) ] | BINARY_FLOAT | BINARY_DOUBLE }
rowid_datatypes
{ ROWID | UROWID [ (size) ] }
The codes listed for the data types are used internally by Oracle Database. The data type code of a column or object attribute is returned by the DUMP
function.
Table 6-1 Built-in Data Type Summary
Code | Data Type | Description |
---|---|---|
1 |
|
Variable-length character string having maximum length
Refer to Oracle Database SQL Language Reference for more information on the
|
1 |
|
Variable-length Unicode character string having maximum length
Refer to Oracle Database SQL Language Reference for more information on the |
2 |
|
Number having precision |
2 |
|
A subtype of the |
8 |
|
Character data of variable length up to 2 gigabytes, or 231 -1 bytes. Provided for backward compatibility. |
12 |
|
Valid date range from January 1, 4712 BC, to December 31, 9999 AD. The default format is determined explicitly by the |
100 |
|
32-bit floating point number. This data type requires 4 bytes. |
101 |
|
64-bit floating point number. This data type requires 8 bytes. |
180 |
|
Year, month, and day values of date, as well as hour, minute, and second values of time, where |
181 |
|
All values of |
231 |
|
All values of
The default format is determined explicitly by the |
182 |
|
Stores a period of time in years and months, where |
183 |
|
Stores a period of time in days, hours, minutes, and seconds, where
The size is fixed at 11 bytes. |
23 |
|
Raw binary data of length
Refer to Oracle Database SQL Language Reference for more information on the |
24 |
|
Raw binary data of variable length up to 2 gigabytes. |
69 |
|
Base 64 string representing the unique address of a row in its table. This data type is primarily for values returned by the |
208 |
|
Base 64 string representing the logical address of a row of an index-organized table. The optional |
96 |
|
Fixed-length character data of length
|
96 |
|
Fixed-length character data of length |
112 |
|
A character large object containing single-byte or multibyte characters. Both fixed-width and variable-width character sets are supported, both using the database character set. Maximum size is (4 gigabytes - 1) * (database block size). |
112 |
|
A character large object containing Unicode characters. Both fixed-width and variable-width character sets are supported, both using the database national character set. Maximum size is (4 gigabytes - 1) * (database block size). Stores national character set data. |
113 |
|
A binary large object. Maximum size is (4 gigabytes - 1) * (database block size). |
114 |
|
Contains a locator to a large binary file stored outside the database. Enables byte stream I/O access to external LOBs residing on the database server. Maximum size is 4 gigabytes. |
See Also:
Oracle Database SQL Language Reference for more information about built-in data types
Oracle-Supplied Data Types
This section shows the syntax for the Oracle-supplied data types.
any_types
{ SYS.AnyData | SYS.AnyType | SYS.AnyDataSet }
spatial_types
{ SDO_Geometry | SDO_Topo_Geometry |SDO_GeoRaster }
XML_types
{ XMLType | URIType }
Converting to Oracle Data Types
SQL statements that create tables and clusters can also use ANSI data types and data types from the IBM products SQL/DS and DB2. Oracle recognizes the ANSI or IBM data type name that differs from the Oracle data type name, records it as the name of the data type of the column, and then stores the column data in an Oracle data type based on the conversions shown in the following table.
Table 6-2 ANSI Data Types Converted to Oracle Data Types
ANSI SQL Data Type | Oracle Data Type |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
-
The
NUMERIC
andDECIMAL
data types can specify only fixed-point numbers. For those data types, the scale (s
) defaults to 0. -
The
FLOAT
data type is a floating-point number with a binary precision b. The default precision for this data type is 126 binary, or 38 decimal. -
The
DOUBLE PRECISION
data type is a floating-point number with binary precision 126. -
The
REAL
data type is a floating-point number with a binary precision of 63, or 18 decimal.
Do not define columns with the following SQL/DS and DB2 data types, because they have no corresponding Oracle data type:
-
GRAPHIC
-
LONG
VARGRAPHIC
-
VARGRAPHIC
-
TIME
Note that data of type TIME
can also be expressed as Oracle datetime data.
See Also:
Oracle Database SQL Language Reference for more information on data types