ArcGIS、ArcSDE 和 SQL Server 数据类型比较
创建表或向数据库中的表添加新列时,列将创建为特定的数据类型。数据类型是用于确定数据值自身以及可对数据执行哪些操作的分类,也表示列中数据在数据库中的存储方式。
要将某种类型的数据导入到另一种数据类型的列中,需要了解 ArcSDE 和数据库管理系统 (DBMS) 之间的等效数据类型,因为这会影响到数据内容。同样,在 ArcGIS 中创建新数据集时,了解 ArcGIS 和 DBMS 之间的等效数据类型也十分有用。
在 ArcGIS 中创建要素类或表时,可为字段分配的数据类型只有 11 种。这表示某些数据类型仅允许在 ArcGIS 外部创建。
ArcSDE 数据类型 |
SQL Server 数据类型 |
ArcGIS 数据类型 |
注 |
---|---|---|---|
SE_STRING_TYPE |
CHAR or VARCHAR |
TEXT | 用于非 Unicode 文本,多达 8000 个字符 |
SE_NSTRING_TYPE |
NCHAR or NVARCHAR |
TEXT | 用于 Unicode 文本,多达 4000 个字符 |
SE_INT16_TYPE (SE_SMALLINT_TYPE) |
SMALLINT |
SHORT INTEGER | |
SE_INT32_TYPE (SE_INTEGER_TYPE) |
INTEGER |
LONG INTEGER | |
SE_INT64_TYPE |
BIGINT or NUMERIC (precision < 19, scale = 0) |
na |
要以此数据类型创建列,服务器配置参数 INT64TYPES 必须为 TRUE。 |
SE_FLOAT32_TYPE (SE_FLOAT_TYPE) |
NUMERIC (precision < 7, scale > 0) |
na | |
SE_FLOAT64_TYPE (SE_DOUBLE_TYPE) |
NUMERIC (precision > = 7, scale > 0) |
na | |
SE_DATE_TYPE |
DATETIME |
DATE | |
SE_UUID_TYPE |
UNIQUEIDENTIFIER |
GUID | |
SE_BLOB_TYPE |
VARBINARY(MAX) |
BLOB | |
SE_SHAPE_TYPE |
INTEGER, GEOMETRY, or GEOGRAPHY |
GEOMETRY |
SQL Server 数据类型取决于为图层指定的几何存储。压缩二进制或熟知二进制 = NUMBER(38);Microsoft SQL Server Geometry = GEOMETRY;Microsoft SQL Server Geography = GEOGRAHY。 |
SE_XML_TYPE |
SDE_XML or XML |
na |
XML 列不在 ArcGIS Desktop 中显示。 |
SE_RASTER_TYPE |
VARBINARY(MAX) or ST_RASTER |
RASTER |
SQL Server 数据类型取决于在 DBTUNE 表中指定的栅格存储。 |
SE_STRING_TYPE |
INT(4) |
OBJECTID | |
REAL |
FLOAT | ||
DOUBLE |
DOUBLE |
如果在 ArcGIS 中将比例设置成大于 0 的值,SQL Server 数据类型将为 NUMERIC。 | |
SE_CLOB_TYPE |
VARCHAR(MAX) |
TEXT | 用于 8000 个或更多字符的非 Unicode 文本 |
SE_NCLOB_TYPE | NVARCHAR(MAX) | TEXT | 用于 4,000 个或更多字符的 Unicode 文本 |