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