When you create a table or add a column to a table in a database, you define a specific data type for the column. Data types determine the following:
- What values you can store in the column
- What operations you can use on the data in that column
- How the data in that column is stored in the database
ArcGIS works with specific data types. When you access a database table through a Database Connection, query layer, or web service, ArcGIS filters out any unsupported data types. ArcGIS does not display unsupported data types, and you cannot edit unsupported data types through ArcGIS. Similarly, when you use ArcGIS to copy and paste tables containing unsupported data types from one database to another, ArcGIS only pastes columns that use a supported data type.
The first column in the following table lists the ArcGIS data types. The second column lists the database management system data type that ArcGIS creates. The third column shows what other database management system data types (if any) map to the ArcGIS data type when you view a table that you created outside ArcGIS. The last column provides additional information when needed.
Altibase
Dameng
ArcGIS data types | Dameng data types created | Other Dameng data types that can be viewed | Notes |
---|---|---|---|
BLOB | BLOB | ||
Date | Datetime6 | ||
Double | Dec(p,s) | By default, p (precision) = 38 and s (scale) = 8. | |
Float | Dec(p,s) | By default, p (precision) = 38 and s (scale) = 8. | |
Geometry | ST_Geometry | ||
GUID | Char(38) | ||
Long Integer | Integer | ||
Object ID | Integer | ||
Short Integer | Smallint | ||
Text | Varchar | P is the field length you specify for the text field. The default value is 50. |
IBM Db2
ArcGIS data types | Db2 data types created | Other Db2 data types that can be viewed | Notes |
---|---|---|---|
BLOB |
BLOB | ||
Date | timestamp | ||
Double | decimal(p,s) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. | |
Float |
decimal(p,s) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. | |
Geometry |
ST_Geometry | ||
Global ID | char(38) | Only supported in geodatabases. | |
GUID |
char(UUID len) | ||
Long Integer |
integer | ||
Object ID |
Character(38) when created in enterprise geodatabases Integer with identity property when created in a database | The ArcGIS type ObjectID is the registered row ID column for the table (or feature class.) Only one may exist per table. | |
Raster | BLOB | Only supported in geodatabases. | |
Short Integer |
smallint | ||
Text |
varchar | char |
IBM Informix
ArcGIS data types | Informix data types created | Other Informix data types that can be viewed | Notes |
---|---|---|---|
BLOB |
BLOB | ||
Date | datetime | ||
Double |
decimal(31,8) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. | |
Float |
decimial(31,8) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. | |
Geometry | ST_Geometry | ST_Geometry is a superclass. The actual data subtype created (such as ST_Multilinestring or ST_Point) depends on what type of feature class you create, whether polygon, line, point, multipoint, or multipatch. | |
Global ID | char(38) | Only supported in geodatabases. | |
GUID |
char(UUID len) | ||
Long Integer |
integer | ||
Object ID | char(38) when created in an enterprise geodatabase serial when created in a database | The ArcGIS type ObjectID is the registered row ID column for the table (or feature class.) Only one may exist per table. | |
Raster |
BLOB | Only supported in geodatabases. | |
Short Integer |
smallint | ||
Text | varchar | char |
Microsoft Azure SQL Database
ArcGIS data types | Azure SQL Database data types created | Other Azure SQL Database data types that can be viewed | Notes |
---|---|---|---|
BLOB | varbinary(max) | binary, image, timestamp, varbinary(n) | |
Date | datetime2(7) | datetime2(n), datetime, smalldatetime | |
Double | numeric(p,s) | decimal, float, money, smallmoney | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. |
Float | numeric(p,s) | real | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. |
Geometry | Geometry Geography | ArcGIS does not support the following Geometry subtypes:
| |
GUID | uniqueidentifier | ||
Long Integer | int | ||
Object ID | integer | Only one may exist per table | |
Short Integer | smallint | bit, tinyint | |
Text | varchar, nvarchar, varchar(max), nvarchar(max) | char, nchar |
Microsoft SQL Server
ArcGIS data types | SQL Server data types created | Other SQL Server data types that can be viewed | Notes |
---|---|---|---|
BLOB |
varbinary(max) | binary, image, timestamp, varbinary(n) | |
Date |
datetime2(7) | datetime2(n), datetime, smalldatetime | |
Double |
numeric(p,s) | decimal, float, money, smallmoney | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. |
Float |
numeric(p,s) | real | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. |
Geometry |
| In an enterprise geodatabase, the SQL Server data type that is created depends on the GEOMETRY_STORAGE parameter of the configuration keyword used when the feature class was created. SDEBINARY = int; GEOMETRY = a Geometry column; GEOGRAPHY = a Geography column. In a database, you specify whether to use GEOMETRY or GEOGRAPHY when a feature class is created. In desktop and workgroup geodatabases, the GEOMETRY type is always used. ArcGIS does not support the following Geometry subtypes:
| |
Global ID | uniqueidentifier | Only supported in geodatabases. | |
GUID |
uniqueidentifier | ||
Long integer |
int | ||
Raster |
BLOB, int | Raster data types are only supported in geodatabases. In desktop and workgroup geodatabases, rasters are always created as BLOB data types. In enterprise geodatabases, the SQL Server data type that is created depends on the configuration keyword used when you create the raster dataset or mosaic dataset. If the keyword's RASTER_STORAGE parameter is set to RASTERBLOB, a BLOB column is created; if set to BINARY, an int column is created. | |
OBJECT ID |
int(4) when created in an enterprise geodatabase integer with identity property when created in a database | The ArcGIS type ObjectID is the registered row ID column for the table (or feature class.) Only one may exist per table. | |
Short integer |
smallint | bit, tinyint | |
Text |
varchar, nvarchar, varchar(max), nvarchar(max) | char, nchar |
Netezza Data Warehouse Appliance
IBM Netezza Data Warehouse Appliance is deprecated at this release.
ArcGIS data types | Netezza data types created | Other Netezza data types that can be viewed | Notes |
---|---|---|---|
BLOB | Not supported | ||
Date | timestamp | date, time, time with time zone | |
Double | numeric(38,8) | bigint (alias int8), numeric(p,s), float(p), real, double precision | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. |
Float | float(p) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. | |
Geometry | varchar(n) ST_Geometry | If you use the Netezza Spatial Package, a varchar field is created, and you must name the field (or alias it to) shape for ArcGIS to recognize it as a spatial column. If you use the Netezza Spatial Esri Package, an ST_Geometry field is created. When an ST_Geometry field is used, you are not required to name the field (or alias it to) shape. | |
GUID | char(38) | ||
Long Integer | integer (alias int or int4) | ||
Object ID | integer (alias int or int4) | ||
Short Integer | smallint (alias int2) | ||
Text | nvarchar(50) | char(n), nchar(n), varchar(n) | If your database is set for Unicode encoding, nvarchar will be created. If your database is not set for Unicode encoding, varchar will be created. |
Oracle
ArcGIS data types | Oracle data types created | Other Oracle data types that can be viewed | Notes |
---|---|---|---|
BLOB | BLOB | ||
Date | timestamp | date | |
Double |
number(38,8) | number(p,s) |
The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. |
Float | number(38,8) | number(p,s) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. |
Geometry |
ST_Geometry, number(38), or SDO_Geometry | The Oracle data type that gets created depends on the geometry storage specified when the feature class is created. Compressed binary or well-known binary (geodatabases only) = number(38); Oracle Spatial = SDO_Geometry; spatial type = ST_Geometry. To use ST_Geometry in a database (not geodatabase), you must install it. | |
Global ID | char or nchar (UUID len) | Only supported in geodatabases. 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. | |
GUID |
char or nchar (UUID len) | The unique identifier field will be created as nchar in a geodatabase if the configuration keyword with which you specified the table's creation had the parameter UNICODE_STRING set to TRUE. | |
Long Integer |
number(38) | number(n) | The value n can be in the range of 5 to 10. If created with ArcGIS Desktop or ArcObjects and precision is set to 0, a number(38) is created in the database; otherwise, the precision specified is used. |
Object ID |
number(38) when created in an enterprise geodatabase number(38) with sequence and trigger when created in the following circumstances:
number(38) generated always as identity when you use ArcGIS to create a feature class or table in an Oracle 12c database or use the Add Incrementing ID Field geoprocessing tool to add an ID field to a table in an Oracle 12c database. | The ArcGIS type ObjectID is the registered row ID column for the table (or feature class). Only one can exist per table. | |
Raster | BLOB or number(38) | Rasters are only supported in geodatabases. The data type used for the raster field depends on the configuration keyword you specify when you create a mosaic dataset or raster dataset. | |
Short Integer |
number(5) | number(n) | 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. |
Text |
varchar2, CLOB, nvarchar2, or NCLOB |
PostgreSQL
ArcGIS data types | PostgreSQL data types created | Other PostgreSQL data types that can be viewed | Notes |
---|---|---|---|
BLOB | bytea | ||
Date | timestamp without zone | timestamp | |
Double | numeric(p,s) | big serial, double precision | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. |
Float | numeric(p,s) | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. See ArcGIS field data types for more information. | |
Geometry | ST_Geometry, Geometry (PostGIS), Geography (PostGIS) | In a geodatabase, the GEOMETRY_STORAGE setting of the configuration keyword used when creating the feature class determines which data type is created in the database. To use ST_Geometry in a database (not a geodatabase), you must install it. See Add the ST_Geometry type to a PostgreSQL database for information. To use the PostGIS geometry or geography type, you must install PostGIS in your PostgreSQL database cluster, and the database itself must be enabled to use PostGIS. See your PostgreSQL documentation for more information. | |
Global ID | varchar(38) | Only supported in geodatabases. | |
GUID | varchar(38) | UUID | |
Long Integer | integer | serial | |
Object ID | Integer in a geodatabase Serial in a database | The ArcGIS type ObjectID is the registered row ID column for the table (or feature class). Only one can exist per table. | |
Raster | bytea | Rasters are supported only in geodatabases. | |
Short Integer | smallint | real | |
Text | character varying | character, varchar, text |
SAP HANA
ArcGIS data types | SAP HANA data types created | Other SAP HANA data types that can be viewed | Notes |
---|---|---|---|
BLOB | BLOB | ||
Date | timestamp | date, seconddate, time | |
Double | decimal(38,8) | decimal(m,n), number(m,n), numeric(m,n), bigint | m > 0 The precision and scale specified in ArcGIS affects the resultant data type created in the database. |
Float | decimal(38,8) | decimal(m,n) | m <= 9 and n > 0 The precision and scale specified in ArcGIS affects the resultant data type created in the database. |
Geometry | ST_Geometry | ||
Global ID | character(38) | ||
GUID | character(38) | Latin character set | |
Long Integer | integer | decimal(m,0) | m <= 9 |
Object ID | bigint | Only 32-bit numbers stored at this time. | |
Raster | Not applicable | Rasters are only supported in geodatabases. Rasters created in geodatabases in SAP HANA use an Esri proprietary data type. | |
Short Integer | smallint | tinyint | |
Text | varchar(50) | alphanum(n), nvarchar(n), CLOB, NCLOB |
SQLite
SQLite does not implement data types in the same way that most other database management systems do. SQLite has a few storage classes in which you can store different data types. SQLite allows you to name data types, as in the case of the realdate, geometryblob, and uuidtext types that get created in SQLite when you create a date, geometry, or guid field in ArcGIS. It also searches the literal text of the data type for clues as to what data type the column stores. For example, it looks for int and interprets that as an integer field. Therefore, if you specify a data type of point, SQLite sees it is an integer field because point contains the string int.
ArcGIS assumes that the data type specified for the field in the table definition is the data type to be applied to all values in the field. If the data type cannot be recognized by ArcGIS, you will not be able to access the table from ArcGIS.
ArcGIS data types | SQLite data types created | Other SQLite data types that can be viewed | Notes |
---|---|---|---|
BLOB | blob(n) | ||
Date | realdate | ||
Double | float64 | numeric, double, float, boolean, real integer, int, int64, int32 (in databases that do not have SpatiaLite installed) | |
Float | float64 | ||
Geometry | geometryblob | ||
GUID | uuidtext | ||
Long Integer | int32(n) | integer, int, int32 (in databases with SpatiaLite) integer primary key | n >= -2147483648 and n <= 2147483648 |
Object ID | int32 | ||
Short Integer | int16(n) | n >= -32768 and n<= 32768 | |
Text | text(n) | char, varchar, blob |
Teradata Data Warehouse Appliance
ArcGIS data types | Teradata data types created | Other Teradata data types that can be viewed | Notes |
---|---|---|---|
BLOB | BLOB | Blob created with Teradata default size. | |
Date | timestamp | ||
Double | decimal(38,8) | decimal(n,m), number(n,m), numeric(n,m) m > 0 | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. |
Float | decimal(38,8) | decimal(n,m), number(n,m), numeric(n,m) m > 0 | The precision and scale specified in ArcGIS can affect the resultant data type created in the database. |
Geometry | CLOB (ST_Geometry) | This field must be named shape for ArcGIS to recognize it as a spatial column. | |
GUID | character(38) character set latin | ||
Long Integer | integer | decimal(n,m), number(n,m), numeric(n,m) n = 5, 6, 7, 8, or 9 m = 0 | |
Object ID | integer | ||
Short Integer | smallint | decimal(n,m), number(n,m), numeric(n,m) n <= 4 m = 0 | |
Text | varchar(50) character set unicode | varchar(n) character set unicode, varchar(n) character set latin, char(n) character set unicode, char(n) character set latin, JSON |