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