ArcGIS 所支持的 PostgreSQL 数据类型

创建表或向数据库中的表添加新列时,列将创建为特定的数据类型。数据类型是用于确定数据值自身以及可对数据执行哪些操作的分类,也表示列中数据在数据库中的存储方式。

从 ArcGIS 访问数据库表时,可以使用特定数据类型。在目录树中通过“数据库连接”节点或在 ArcMap 中通过查询图层访问数据库表时,ArcGIS 会过滤掉任何不支持的数据类型。如果直接访问数据库表,则不支持的数据类型不会显示在 ArcGIS 界面,您也无法通过 ArcGIS 编辑这些数据。同样,复制包含不受 ArcGIS 支持的数据类型的表时,将只复制支持的数据类型;将表粘贴到另一个数据库或地理数据库时,不会存在不支持的数据类型列。

在 ArcGIS 中创建要素类或表时,或者使用 ArcGIS 向现有表或要素类添加列时,可向字段分配 11 种可能的数据类型。未与这些类型对应的数据库数据类型不能直接在 ArcGIS 客户端应用程序中使用。

第一列列出了 ArcGIS 中可用的数据类型。第二列列出了将在数据库中创建的 PostgreSQL 数据类型。第三列显示了在 ArcGIS 中查看时哪些其他 PostgreSQL 数据类型(如果有)会映射到 ArcGIS 数据类型。

ArcGIS 数据类型

创建的 PostgreSQL 数据类型

可以查看的其他 PostgreSQL 数据类型

备注

BLOB

BYTEA

DATE

TIMESTAMP WITHOUT ZONE

TIMESTAMP

DOUBLE

NUMERIC(p)

BIG SERIAL、DOUBLE PRECISION

ArcGIS 中指定的精度和小数位数可以影响在数据库中创建的生成数据类型。有关详细信息,请参阅 ArcGIS 字段数据类型

FLOAT

NUMERIC(p)

ArcGIS 中指定的精度和小数位数可以影响在数据库中创建的生成数据类型。有关详细信息,请参阅 ArcGIS 字段数据类型

GEOMETRY

ST_GEOMETRY or GEOMETRY

在企业级地理数据库中,创建要素类时使用的配置关键字的 GEOEMTRY_STORAGE 设置将决定在数据库中创建的数据类型。

ST_Geometry 和几何都属于超类。在 ArcGIS for Desktop 中创建要素类时,创建为 ST_Geometry 的点要素类使用 ST_Point 子类型进行存储,创建为 PostGIS 几何的点要素类使用 Point 子类型进行存储。对于在 ArcGIS for Desktop 中创建的所有其他类型的要素类,都使用超类。如果是使用 SQL 创建空间列,则实际创建的数据子类型将取决于所指定的子类型是什么类型。

要在数据库中使用 ST_Geometry 必须先进行安装。有关详细信息,请参阅向 PostgreSQL 数据库添加 ST_Geometry 类型

要使用 PostGIS 几何类型,您必须在 PostgreSQL 数据库集群中安装 PostGIS,且数据库本身必须允许使用 PostGIS。有关详细信息,请参阅 PostgreSQL 文档。

GUID

VARCHAR(38)

LONG INTEGER

INTEGER

SERIAL

OBJECTID

地理数据库中的 INTEGER

数据库中的 SERIAL

ArcGIS 类型 ObjectID 是表(或要素类)的注册行 ID 列。每个表只能存在一个 ObjectID。对于在 ArcGIS 外部创建的表,只有在注册到地理数据库之后才会将列转换为 ObjectID。

RASTER

BYTEA or ST_RASTER

仅在企业级地理数据库中支持栅格,且创建的 PostgreSQL 数据类型取决于创建栅格目录、栅格数据集或镶嵌数据集时所使用的 DBTUNE 配置关键字。

要使用 ST_Raster,必须先在地理数据库中对其进行单独配置。有关说明,请参阅在 PostgreSQL 中安装 ST_Raster 类型

SHORT INTEGER

SMALLINT

REAL

TEXT

CHARACTER VARYING

CHARACTER、VARCHAR、TEXT

ArcGIS 所支持的 PostgreSQL 数据类型

如果您的表中包含了一列具有 ArcGIS 不支持的数据类型的数据,则可以将该列转换为文本。但是请仅在想要查看该列中值时这样做;如果需要执行将用到该列中值的分析,请不要这样做。例如,您可以执行 SELECT 语句选择 tableb 中的列,并将小数列“total”转换为文本:

SELECT id, name, total::text
FROM me.mydb.tableb;
9/15/2013