ArcGIS、ArcSDE 和 PostgreSQL 数据类型比较

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

要将某种类型的数据导入到另一种数据类型的列中,需要了解 ArcSDE 和数据库管理系统 (DBMS) 之间的等效数据类型,因为这会影响到数据内容。同样,在 ArcGIS 中创建新数据集时,了解 ArcGIS 和 DBMS 之间的等效数据类型也十分有用。

在 ArcGIS 中创建要素类或表时,可为字段分配的数据类型只有 11 种。这表示某些数据类型仅允许在 ArcGIS 外部创建。

ArcSDE 数据类型

PostgreSQL 数据类型

ArcGIS 数据类型

SE_STRING_TYPE

VARCHAR

TEXT

SE_INT16_TYPE (SE_SMALLINT_TYPE)

SMALLINT

SHORT INTEGER

SE_INT32_TYPE (SE_INTEGER_TYPE)

INTEGER

LONG INTEGER

SE_INT64_TYPE

BIGINT

na

要以此数据类型创建列,服务器配置参数 INT64TYPES 必须为 TRUE。

SE_FLOAT32_TYPE (SE_FLOAT_TYPE)

REAL

na

SE_FLOAT64_TYPE (SE_DOUBLE_TYPE)

NUMERIC(n,m)

na

SE_DATE_TYPE

TIMESTAMP WITHOUT ZONE

DATE

SE_UUID_TYPE

VARCHAR(38)

GUID

SE_BLOB_TYPE

BYTEA

BLOB

SE_SHAPE_TYPE

ST_GEOMETRY or GEOMETRY *

GEOMETRY

PostgreSQL 数据类型取决于创建图层时使用的配置关键字:ST_GEOMETRY 或 PG_GEOMETRY(PostGIS 几何)。

SE_XML_TYPE

SDE_XML or XML

na

XML 列不在 ArcGIS Desktop 中显示。

SE_RASTER_TYPE

BYTEA or ST_RASTER

RASTER

PostgreSQL 数据类型取决于 DBTUNE 表中指定的栅格存储。

必须在数据库中单独配置 ST_Raster。有关说明,请参阅在 PostgreSQL 中安装 ST_Raster 类型

SE_STRING_TYPE

INTEGER

OBJECTID

NUMERIC(38,8)

FLOAT

NUMERIC(38,8)

DOUBLE

PostgreSQL 数据类型比较

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


7/10/2012