ArcGIS 中支持的 DBMS 数据类型

创建表或向数据库中的表添加新列时,将为列定义特定数据类型。数据类型确定以下内容:

  • 可以在该列中存储哪些值
  • 可以在该列中对数据执行哪些操作
  • 如何在数据库中存储该列的数据

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

指定创建要素类时使用 GEOMETRY 还是 GEOGRAPHY。

ArcGIS 不支持以下 Geometry 子类型:

  • CircularString
  • CompoundCurve
  • CurvePolygon
  • GeometryCollection

您无法在 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 11g。
  • 将现有 Oracle 12c 数据库表注册到地理数据库中。

如果在 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