创建表或向数据库中的表添加新列时,将为列定义特定数据类型。 数据类型确定以下内容:
- 可以在该列中存储哪些值
- 可以在该列中对数据执行哪些操作
- 如何在数据库中存储该列的数据
ArcGIS 使用特定数据类型。 通过数据库连接、查询图层或 web 服务访问数据库表时,ArcGIS 将过滤掉任何不受支持的数据类型。 ArcGIS 不会显示不受支持的数据类型并且您无法通过 ArcGIS 编辑不受支持的数据类型。 同样,使用 ArcGIS 将包含不受支持的数据类型的表从一个数据库复制和粘贴到另一个数据库时,ArcGIS 只粘贴使用受支持的数据类型的列。
下表第一列列出了 ArcGIS 的各个数据类型。 第二列列出了 ArcGIS 创建的数据库管理系统数据类型。 第三列显示了在 ArcGIS 外查看已创建表时,哪些其他的数据库管理系统数据类型(如果有)会映射到 ArcGIS 数据类型。 最后一列用于提供所需其他信息。
Dameng
ArcGIS 数据类型 | 创建的 Dameng 数据类型 | 可以查看的其他 Dameng 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob | BLOB | ||
日期 | datetime6 | ||
仅日期 | date | ||
双精度 | dec(p,s) | 默认情况下,p(精度)= 38 且 s(比例)= 8。 | |
浮点型 | dec(p,s) | 默认情况下,p(精度)= 38 且 s(比例)= 8。 | |
几何 | st_geometry | ||
GUID | char(38) | ||
长整型 | 整型 | ||
对象 ID | 整型 | ||
短整型 | smallint | ||
文本 | varchar | 文本字段长度的默认值为 50。 | |
仅时间 | 时间 | ||
时间戳偏移 | timestamp with time zone offset |
IBM Db2
ArcGIS 数据类型 | 所创建的 Db2 数据类型 | 可以查看的其他 Db2 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob |
BLOB | ||
日期 | timestamp | ||
仅日期 | date | ||
双精度 | decimal(p,s) | ArcGIS 中指定的精度和小数位数可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 | |
浮点型 |
decimal(p,s) | ArcGIS 中指定的精度和小数位数可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 | |
几何 |
ST_Geometry | ||
Global ID | char(38) | 仅地理数据库支持全局 ID。 | |
GUID |
char(UUID len) | ||
长整型 |
整型 | ||
对象 ID |
integer(32 位对象 ID)、big int(64 位对象 ID) | ArcGIS 对象 ID 数据类型是表(或要素类)的注册行 ID 列。 每个表只能存在一个。 此字段包含在数据库中创建时的标识属性。 | |
栅格 | BLOB | ArcGIS 栅格数据类型仅适用于地理数据库。 | |
短整型 |
smallint | ||
文本 |
varchar | char | |
仅时间 | 时间 | ||
时间戳偏移 | 不适用 | 不支持 |
Microsoft SQL Server
ArcGIS 数据类型 | 创建的 SQL Server 数据类型 | 可以查看的其他 SQL Server 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob |
varbinary(max) | binary、image、timestamp、varbinary(n) | |
日期 |
datetime2(7) | datetime2(n)、datetime、smalldatetime | |
仅日期 | date | ||
双精度 |
numeric(p,s) | decimal、float、money、smallmoney | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
浮点型 |
numeric(p,s) | real | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
几何 |
| 指定在创建要素类时是使用几何还是地理空间数据类型。 ArcGIS 不支持以下 Geometry 子类型:
注:以下几何存储类型已在 ArcGIS Pro 中弃用:
无法创建使用这些存储类型的要素类。 目前,您可以查看使用这些几何存储类型的要素类,但将在未来版本中移除此功能。 请使用迁移存储地理处理工具将要素类迁移到受支持的数据类型,以确保您能够继续访问数据。 如果存在压缩的二进制数据,则其将作为 INT 数据类型存储在数据库中。 | |
Global ID | uniqueidentifier | 仅适用于地理数据库。 | |
GUID |
uniqueidentifier | ||
长整型 |
int | ||
栅格 |
int | ArcGIS 栅格数据类型仅适用于地理数据库。 在 SQL Server 的企业级地理数据库中,将在基表中创建整型字段,关联栅格表中的 BLOB 字段用于存储影像数据。 | |
OBJECT ID |
int(4) when created in an enterprise geodatabase integer with identity property when created in a database | ArcGIS 对象 ID 数据类型是表(或要素类)的注册行 ID 列。每个表只能存在一个。 | |
短整型 |
smallint | bit、tinyint | |
文本 |
varchar, nvarchar, varchar(max), nvarchar(max) | char、nchar | |
仅时间 | 时间 | ||
时间戳偏移 | timestamp with time zone offset |
Oracle
ArcGIS 数据类型 | 创建的 Oracle 数据类型 | 可以查看的其他 Oracle 数据类型 | 注释 |
---|---|---|---|
大整型 | number(p) | number(p) | 精度 (p) 值范围为 11 到 18。 如果在 ArcGIS 软件或 ArcObjects SDK 中创建大整型字段时未指定精度,则将创建 Oracle number(38) 字段。 |
Blob | BLOB | ||
日期 | timestamp | ||
仅日期 | 不适用 | 不支持 | |
双精度 |
number(38,8) | number(p,s) |
ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
浮点型 | number(38,8) | number(p,s) | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
几何 |
ST_Geometry 或 SDO_Geometry | 创建的 Oracle 数据类型取决于创建要素类时指定的几何存储。 Oracle Spatial = SDO_Geometry 或 spatial type = ST_Geometry。 要在数据库(非地理数据库)中使用 ST_Geometry,必须先进行安装。 注:以下几何存储类型已在 ArcGIS Pro 中弃用:
如果存在于地理数据库中,则其将在数据库中显示为数值数据类型。 无法创建使用这些存储类型的要素类。 目前,您可以查看使用这些几何存储类型的要素类,但将在未来版本中移除此功能。 请使用迁移存储地理处理工具将要素类迁移到受支持的数据类型,以确保您能够继续访问数据。 | |
Global ID | char or nchar (UUID len) | 仅适用于地理数据库。 如果将用于指定表创建的配置关键字的参数 UNICODE_STRING 设置为 TRUE,那么唯一标识符字段将创建为 nchar 字段。 | |
GUID |
char or nchar (UUID len) | 如果将用于指定表创建的配置关键字的参数 UNICODE_STRING 设置为 TRUE,那么唯一标识符字段在地理数据库中将创建为 nchar 字段。 | |
长整型 |
number(10) | number(p) | 精度 (p) 值范围为 6 到 10。 如果使用 ArcGIS 软件或 ArcObjects SDK 创建并且未设置精度,则会在数据库中创建 number(38);否则,将使用指定的精度。 精度可以影响结果 ArcGIS 数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
对象 ID |
在企业级地理数据库中创建时为 number(38) 将现有数据库表注册到地理数据库时,number(38) 将具有序列。 如果在 Oracle 数据库中使用 ArcGIS 创建要素类或表,或使用添加增量 ID 字段地理处理工具将 ID 字段添加到 Oracle 数据库的表格内,则始终会生成 number(38) 作为标识。 | ArcGIS 对象 ID 数据类型是表(或要素类)的注册行 ID 列。 每个表只能存在一个 ObjectID。 | |
栅格 | BLOB or number(38) | ArcGIS 栅格数据类型仅适用于地理数据库。 栅格字段所使用的数据类型取决于创建镶嵌数据集或栅格数据集时指定的配置关键字。 | |
短整型 |
number(5) | number(p) | 精度 (p) 值范围为 1 到 5。 但是,短整型列只可存储介于 -32,768 和 32,767 之间的值。 即使数字的精度为 5,也无法在短整型列中存储大于 32,767 或小于 -32,768 的数字。 如果使用 ArcGIS 软件或 ArcObjects SDK 创建并且未设置精度,则会在数据库中创建 number(5);否则,将使用指定的精度。 精度可以影响结果 ArcGIS 数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
文本 |
varchar2、CLOB、nvarchar2 或 NCLOB | ||
仅时间 | 不适用 | 不支持 | |
时间戳偏移 | timestamp with time zone offset |
PostgreSQL
ArcGIS 数据类型 | 创建的 PostgreSQL 数据类型 | 可以查看的其他 PostgreSQL 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob | bytea | ||
日期 | timestamp without time zone | timestamp with time zone | |
仅日期 | date | ||
双精度 | numeric(p,s) | 双精度型 | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
浮点型 | numeric(p,s) | decimal、double precision、numeric、real | ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响在数据库中创建的结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型。 |
几何 | ST_Geometry, Geometry (PostGIS), Geography (PostGIS) | 在地理数据库中,创建要素类时使用的配置关键字的 GEOMETRY_STORAGE 设置将决定在数据库中创建的数据类型。 要在数据库(非地理数据库)中使用 ST_Geometry,必须先进行安装。 有关详细信息,请参阅向 PostgreSQL 数据库添加 ST_Geometry 类型。 要使用 PostGIS 几何或地理类型,您必须在 PostgreSQL 数据库集群中安装 PostGIS,且数据库本身必须允许使用 PostGIS。 有关详细信息,请参阅 PostgreSQL 文档。 | |
Global ID | varchar(38) | 仅地理数据库支持全局 ID。 | |
GUID | varchar(38) | UUID | |
长整型 | 整型 | serial | |
对象 ID | 地理数据库中的 integer(32 位)或 bigint(64 位) 数据库中的 Serial | ArcGIS 对象 ID 数据类型是表(或要素类)的注册行 ID 列。 每个表只能存在一个 ObjectID。 | |
栅格 | bytea | ArcGIS 栅格数据类型仅适用于地理数据库。 | |
短整型 | smallint | ||
文本 | character varying | character、text | 如果使用 SQL 客户端或第三方应用程序创建文本字段,但未定义长度(换言之,长度为 0),则 ArcGIS 会将此字段读取为 CLOB。 |
仅时间 | 时间 | time without time zone、time with time zone | |
时区偏移 | 不适用 | 不支持 |
SAP HANA
ArcGIS 数据类型 | 所创建的 SAP HANA 数据类型 | 可以查看的其他 SAP HANA 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob | BLOB | ||
日期 | timestamp | date、seconddate、time | |
仅日期 | date | ||
双精度 | decimal(38.8) | decimal(p,s)、number(p,s)、numeric(p,s)、bigint | p > 0 ArcGIS 中指定的精度 (p) 和小数位数 (s) 可影响在数据库中创建的生成数据类型。 |
浮点型 | decimal(38.8) | decimal(p,s) | p <= 9 并且 s > 0 ArcGIS 中指定的精度 (p) 和小数位数 (s) 可影响在数据库中创建的生成数据类型。 |
几何 | ST_Geometry | ||
Global ID | character(38) | 仅适用于地理数据库。 | |
GUID | character(38) | 拉丁语字符集 | |
长整型 | 整型 | decimal(p,0) | p <= 9 |
对象 ID | bigint | 此时仅存储 32 位数字。 | |
栅格 | 不适用 | ArcGIS 栅格数据类型仅适用于地理数据库。 在 SAP HANA 中的地理数据库中创建的栅格使用 Esri 专有数据类型。 | |
短整型 | smallint | tinyint | |
文本 | varchar(50) | alphanum(n)、nvarchar(n)、CLOB、NCLOB | |
仅时间 | 时间 | ||
时间戳偏移 | 不适用 | 不支持。 |
SQLite
SQLite 数据库(包括 Open Geospatial Consortium (OGC) GeoPackage 文件)实施数据类型的方式与大多数其他数据库管理系统不同。 SQLite 具有数个可存储数据类型的存储类。 SQLite 允许您命名数据类型,例如在 ArcGIS 中创建日期、仅日期、几何或 guid 字段时,可在 SQLiteSQLite 中创建 realdate、realdateonly、geometryblob 和 uuidtext 类型。 还可通过搜索数据类型的文字文本以获得列存储数据类型相关的线索。 例如,查找 int 并将其解释为整型字段。 因此,如果指定 point 数据类型,SQLite 会将其视为整型字段,因为 point 中包含字符串 int。
ArcGIS 假设为表定义中的字段指定的数据类型是要应用于字段中所有值的数据类型。 如果 ArcGIS 无法识别数据类型,您将无法从 ArcGIS 访问表。
ArcGIS 数据类型 | 创建的 SQLite 数据类型 | 可以查看的其他 SQLite 数据类型 | 注释 |
---|---|---|---|
大整型 | int64 | 将在 OGC GeoPackage 中创建整数。 如果安装了 SpatiaLite,则不适用于 SQLite 数据库。 | |
Blob | blob(n) | ||
日期 | realdate | ||
仅日期 | realdateonly | 将在 OGC GeoPackage 中创建日期。 如果安装了 SpatiaLite,则不适用于 SQLite 数据库。 | |
双精度 | float64 | numeric、double、float、boolean、real integer、int、int64、int32(在没有安装 SpatiaLite 的数据库中) | |
浮点型 | float64 | ||
几何 | geometryblob | ||
Global ID | uuidtext | 仅适用于移动地理数据库。 | |
GUID | SQLite 数据库中的 uuidtext、GeoPackage 文件中的文本 | ||
长整型 | int32(n) | integer、int、int32(在带有 SpatiaLite 的数据库中) 整型主键 | n >= -2147483648 和 n <= 2147483648 |
对象 ID | int32 | ||
短整型 | int16(n) | n >= -32768 和 n<= 32768 | |
文本 | text(n) | char、varchar、blob | |
仅时间 | texttimeonly | 如果安装了 SpatiaLite,则不适用于 GeoPackage 文件和 SQLite 数据库。 | |
时间戳偏移 | texttimestamptz collate tsorder | 如果安装了 SpatiaLite,则不适用于 GeoPackage 文件和 SQLite 数据库。 |
Teradata 数据仓库设备
ArcGIS 数据类型 | 创建的 Teradata 数据类型 | 可以查看的其他 Teradata 数据类型 | 注释 |
---|---|---|---|
大整型 | bigint | ||
Blob | BLOB | BLOB 大小为 Teradata 默认大小。 | |
日期 | timestamp | ||
仅日期 | date | ||
双精度 | decimal(38.8) | decimal(n,m)、number(n,m)、numeric(n,m) m > 0 | ArcGIS 中指定的精度和小数位数可以影响在数据库中创建的结果数据类型。 |
浮点型 | decimal(38.8) | decimal(n,m)、number(n,m)、numeric(n,m) m > 0 | ArcGIS 中指定的精度和小数位数可以影响在数据库中创建的结果数据类型。 |
几何 | CLOB (ST_Geometry) | 该字段必须命名为 shape,ArcGIS 才能将其识别为空间列。 | |
GUID | character(38) 字符集拉丁语 | ||
长整型 | 整型 | decimal(p,s)、number(p,s)、numeric(p,s) | 精度 (p) = 5、6、7、8 或 9 比例 (s) = 0 |
对象 ID | 整型 | ||
短整型 | smallint | decimal(p,s)、number(p,s)、numeric(p,s) | 精度 (p) <= 4 比例 (s) = 0 |
文本 | varchar(50) 字符集 unicode | varchar(n) 字符集 unicode、varchar(n) 字符集拉丁语、char(n) 字符集 unicode、char(n) 字符集拉丁语、JSON | |
仅时间 | 时间 | ||
时间戳偏移 | timestamp with time zone offset |