ArcGIS Server Banner

About data types

About data types

Release 9.3 E-mail This TopicPrintable VersionGive Us feedback
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. For example, if you add a floating point (float) column to an existing feature class, that equates to a numeric data type column in a SQL Server database.

NOTE: Moving data from one database to another can cause data types to remap.

Each DBMS product can use different data types. The matrix below compares the data types used by each DBMS for each ArcSDE data type. For example, for the ArcSDE date type, DB2 uses a timestamp data type, Informix and SQL Server use a datetime data type, Oracle uses a date data type, and PostgreSQL uses a timestamp without time zone data type.


ArcSDE type DB2 Informix Oracle SQL Server PostgreSQL
SE_STRING_TYPE CHAR, VARCHAR CHAR, VARCHAR VARCHAR2(size) CHAR, VARCHAR VARCHAR (character varying)
SE_NSTRING_TYPE na na NVARCHAR2(size) NCHAR, NVARCHAR na
SE_NCLOB_TYPE na na NCLOB NTEXT TEXT
SE_INT16_TYPE (SE_SMALLINT_TYPE) SMALLINT SMALLINT NUMBER(n):

n can be in the range of 1 to 5.

SMALLINT SMALLINT
SE_INT32_TYPE (SE_INTEGER_TYPE) INTEGER INTEGER NUMBER(n):

n can be in the range of 5 to 10; however, if created with the sdetable -o create operation o, int32 results in NUMBER(38).
INT INTEGER
SE_INT64_TYPE

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

BIGINT INT8 NUMBER(n):

n can be in the range of 10 to 38.

BIGINT, NUMERIC (precision < 19, scale = 0) BIGINT
SE_FLOAT32_TYPE (SE_FLOAT_TYPE) FLOAT DECIMAL (precision < 7, scale > 0) NUMBER(n,m):

n can be in the range of 1 to 7, m is 127 or less.
NUMERIC (precision < 7, scale > 0) REAL
SE_FLOAT64_TYPE (SE_DOUBLE_TYPE) DOUBLE FLOAT NUMBER(n,m)

n can be in the range of 7 to 38, m is 127 or less.
NUMERIC (precision > = 7, scale > 0) NUMERIC (n,m)
SE_DATE_TYPE TIMESTAMP DATETIME DATE DATETIME TIMESTAMP WITHOUT ZONE
SE_UUID_TYPE* NCHAR, (UUID LEN) NCHAR NCHAR(38) UNIQUEIDENTIFIER VARCHAR(38)
SE_BLOB_TYPE BLOB BLOB LONG RAW

BLOB
IMAGE BYTEA
SE_SHAPE_TYPE ST_GEOMETRY ST_GEOMETRY NUMBER(38)

SDO_GEOMETRY

ST_GEOMETRY

Oracle data type depends on the geometry storage chosen for the layer:

compressed binary or well-known binary = NUMBER(38); Oracle Spatial = SDO_GEOMETRY; Spatial Type = ST_GEOMETRY.
INT ST_GEOMETRY or GEOMETRY

PostgreSQL data type depends on the geometry chosen for the layer: Spatial Type = st_geometry, PostGIS = geometry

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

Go to the following topics to see the ArcGIS to DBMS type mapping for a particular DBMS:

DB2 data types

Informix data types

Oracle data types

PostgreSQL data types

SQL Server data types

See Also

  • An overview of configuring an ArcSDE geodatabase
  • About geometry storage types