A comparison of ArcGIS, ArcSDE, and Oracle data types

When you create a table or add a column to a table in the database, columns are created as a specific data type. Data types are classifications that identify possible values for and operations that can be done on the data, as well as the way the data in that column is stored in the database.

When you import data of one type into a column of another data type, you need to understand what the equivalent data types are between ArcSDE and your database management system (DBMS) because it can impact data content. Also, when creating new datasets in ArcGIS, it is helpful to know the equivalent data types between ArcGIS and your DBMS.

When you create a feature class or table in ArcGIS, there are 11 possible data types you can assign to a field. That means there are some data types that can only be created outside ArcGIS Desktop.

ArcSDE data type

Oracle data type

ArcGIS data type

Notes

SE_STRING_TYPE

VARCHAR2

TEXT

The field will be created as VARCHAR2 if the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to FALSE.

If you set the text field size larger than 4,000 and the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to FALSE when you create the field in ArcGIS Desktop, the Oracle data type will be CLOB.

SE_NSTRING_TYPE

NVARCHAR2

TEXT

The field will be created as NVARCHAR2 if the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to TRUE.

If you set the text field size larger than 2,000 and the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to TRUE when you create the field in ArcGIS Desktop, the Oracle data type will be NCLOB.

SE_INT16_TYPE (SE_SMALLINT_TYPE)

NUMBER(n)

SHORT INTEGER

The value n can be in the range of 1 to 5. However, short integer columns can only store values that fall in the range -32,768 to 32,767. Even if the precision on the number is 5, you cannot store a number greater than 32,767 or less than -32,768 in a short integer column.

When created with ArcGIS Desktop, n=5. This allows you to store short integers that fall within the allowable range.

SE_INT32_TYPE (SE_INTEGER_TYPE)

NUMBER(n)

LONG INTEGER

OBJECTID

The value n can be in the range of 5 to 10. However, if a long integer is created with the sdetable -o create operation or ArcGIS Desktop and no precision is specified, NUMBER(38) is created in the database.

SE_INT64_TYPE

NUMBER(n)

na

The value n can be in the range of 10 to 38.

The server configuration parameter INT64TYPES must be TRUE to create columns with this data type.

SE_FLOAT32_TYPE (SE_FLOAT_TYPE)

NUMBER(n,m)

na

The value n can be in the range of 1 to 7; m is 127 or less.

SE_FLOAT64_TYPE (SE_DOUBLE_TYPE)

NUMBER(n,m)

na

The value n can be in the range of 7 to 38; m is 127 or less.

SE_DATE_TYPE

DATE

DATE

SE_UUID_TYPE

CHAR or NCHAR (UUID LEN)

GUID or Global ID

The unique identifier field will be created as NCHAR if the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to TRUE.

SE_BLOB_TYPE

BLOB

BLOB

SE_SHAPE_TYPE

ST_GEOMETRY*, NUMBER(38), or SDO_GEOMETRY

GEOMETRY

Oracle data type depends on the geometry storage specified for the layer. Compressed binary or well-known binary = NUMBER(38); Oracle Spatial = SDO_GEOMETRY; Spatial Type = ST_GEOMETRY.

SE_XML_TYPE

SDE_XML or Oracle XML DB

na

XML columns are not exposed in ArcGIS Desktop.

SE_RASTER_TYPE

BLOB, LONG RAW, SDO_GEORASTER, or ST_RASTER

RASTER

Oracle data type depends on the raster storage specified in the DBTUNE table.

DECIMAL(31,8)

FLOAT

DECIMAL(31,8)

DOUBLE

SE_CLOB_TYPE

CLOB

TEXT

If you set the text field size larger than 4,000 and the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to FALSE when you create the field in ArcGIS Desktop, the Oracle data type will be CLOB.

SE_NCLOB_TYPE

NCLOB

TEXT

If you set the text field size larger than 2,000 and the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to TRUE when you create the field in ArcGIS Desktop, the Oracle data type will be NCLOB.

Oracle data type comparison

*ST_Geometry is a superclass. When you create feature classes in ArcGIS Deksktop, ST_Geometry is always used. If you create a spatial column using SQL, the actual data subtype created (such as ST_Multilinestring or ST_Point) depends on what subtype you specify.


8/19/2013