ArcGIS 支持的 Oracle 数据类型

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

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

ArcGIS 使用特定数据类型。 通过数据库连接、查询图层或 web 服务访问数据库表时,ArcGIS 将过滤掉任何不受支持的数据类型。 ArcGIS 不会显示不受支持的数据类型并且您无法通过 ArcGIS 编辑不受支持的数据类型。 同样,使用 ArcGIS 将包含不受支持的数据类型的表从一个数据库复制和粘贴到另一个数据库时,ArcGIS 只粘贴使用受支持的数据类型的列。

下表第一列列出了 ArcGIS 的各个数据类型。 第二列列出了 ArcGIS 创建的 PostgreSQL 数据类型。 第三列显示了在查看 ArcGIS 外创建的表(未注册到地理数据库的表)时哪些其他 PostgreSQL 数据类型(如果有)会映射到 ArcGIS 数据类型。 最后一列用于提供所需其他信息。

ArcGIS 数据类型创建的 Oracle 数据类型可以查看的其他 Oracle 数据类型备注

大整数

number(p)

number(p)

精度 (p) 值范围为 11 到 18。

如果在 ArcGIS 软件或 ArcObjects SDK 中创建大整型字段时未指定精度,则将创建 Oracle number(38) 字段。

Blob

BLOB

日期

timestamp

仅日期

不适用

不支持

双精度

number(38,8)

number(p,s)

ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型

浮点型

number(38,8)

number(p,s)

ArcGIS 中指定的精度 (p) 和小数位数 (s) 可以影响结果数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型

几何

ST_Geometry 或 SDO_Geometry

创建的 Oracle 数据类型取决于创建要素类时指定的几何存储。 Oracle Spatial = SDO_Geometry 或 spatial type = ST_Geometry。

要在数据库(非地理数据库)中使用 ST_Geometry,必须先进行安装

注:

以下几何存储类型已在 ArcGIS AllSource 中弃用:

  • SDEBINARY
  • SDELOB
  • WKB_GEOMETRY

如果存在于地理数据库中,则其将在数据库中显示为数值数据类型。

无法创建使用这些存储类型的要素类。 目前,您可以查看使用这些几何存储类型的要素类,但将在未来版本中移除此功能。 请使用迁移存储地理处理工具将要素类迁移到受支持的数据类型,以确保您能够继续访问数据。

Global ID

char or nchar (UUID len)

仅适用于地理数据库。

如果将用于指定表创建的配置关键字的参数 UNICODE_STRING 设置为 TRUE,那么唯一标识符字段将创建为 nchar 字段。

GUID

char or nchar (UUID len)

如果将用于指定表创建的配置关键字的参数 UNICODE_STRING 设置为 TRUE,那么唯一标识符字段在地理数据库中将创建为 nchar 字段。

长整型

number(10)

number(p)

精度 (p) 值范围为 6 到 10。

如果使用 ArcGIS 软件或 ArcObjects SDK 创建并且未设置精度,则会在数据库中创建 number(38);否则,将使用指定的精度。

精度可以影响结果 ArcGIS 数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型

对象 ID

在企业级地理数据库中创建时为 number(38)

将现有数据库表注册到地理数据库时,number(38) 将具有序列。

如果在 Oracle 数据库中使用 ArcGIS 创建要素类或表,或使用添加增量 ID 字段地理处理工具将 ID 字段添加到 Oracle 数据库的表格内,则始终会生成 number(38) 作为标识。

ArcGIS 对象 ID 数据类型是表(或要素类)的注册行 ID 列。 每个表只能存在一个 ObjectID。

栅格

BLOB or number(38)

ArcGIS 栅格数据类型仅适用于地理数据库。

栅格字段所使用的数据类型取决于创建镶嵌数据集或栅格数据集时指定的配置关键字。

短整型

number(5)

number(p)

精度 (p) 值范围为 1 到 5。 但是,短整型列只可存储介于 -32,768 和 32,767 之间的值。 即使数字的精度为 5,也无法在短整型列中存储大于 32,767 或小于 -32,768 的数字。

如果使用 ArcGIS 软件或 ArcObjects SDK 创建并且未设置精度,则会在数据库中创建 number(5);否则,将使用指定的精度。

精度可以影响结果 ArcGIS 数据类型。 有关详细信息,请参阅 ArcGIS 字段数据类型

文本

varchar2、CLOB、nvarchar2 或 NCLOB

仅时间

不适用

不支持

时间戳偏移

timestamp with time zone offset

ArcGIS 所支持的 Oracle 数据类型

文本数据类型

当您选择将文本字段包含在使用 ArcGIS 创建的表中时,如果未将数据库设置为使用 Unicode 编码,则使用 varchar2 数据类型。 如果将文本字段的大小设置为大于 4000,且未将数据库设置为使用 Unicode 编码,则 Oracle 数据类型将为 CLOB。

如果将数据库设置为使用 Unicode 编码,那么文本字段将创建为 nvarchar2。 (这是 Oracle 中地理数据库的默认设置。)如果将文本字段的大小设置为大于 2,000,且将数据库设置为使用 Unicode 编码,那么 Oracle 数据类型将为 NCLOB。

几何数据类型

ArcGIS 可在 Oracle 中创建并处理两种几何数据类型:Esri ST_Geometry 以及 Oracle SDO_Geometry。

ST_Geometry

ST_Geometry 数据类型遵循用户定义数据类型 (UDT) 的 SQL 3 规范,用于创建可存储空间数据(如地标、街道或土地宗地的位置)的列。 该数据类型可通过符合国际标准化组织 (ISO) 和 Open Geospatial Consortium (OGC) 标准的结构化查询语言 (SQL) 来访问地理数据库和数据库。 通过向表示地理要素的对象(点、线及面)提供存储空间,此存储类型扩展了数据库的功能。 此存储类型旨在充分利用数据库资源,与数据库要素(如复制与分区)兼容,以及快速访问空间数据。

有关详细信息,请参阅 Oracle 中的 ST_Geometry

SDO_Geometry

使用 Oracle 的可扩展对象关系型系统可实现 SDO_Geometry。 可以通过 Oracle 提供的两个主要选项来使用 SDO_Geometry 类型:

  • Oracle Spatial 是 Oracle 数据库企业版的一项可选功能。 除提供 SDO_Geometry 类型外,Oracle Spatial 还提供若干个其他地理空间功能。
  • Oracle Locator 提供 Oracle Spatial 的子功能。 它作为一项标准功能包括在 Oracle 数据库标准版和企业版中。 除其他功能外,它还为该内容提供 Oracle Spatial 几何类型(即 SDO_Geometry)和 SQL API。

ArcGIS 支持 SDO_Geometry,并将其作为一种用于存储空间数据的可选方法。 确切地说,可使用 Oracle Spatial 或 Oracle Locator 几何来存储和管理企业级地理数据库或 Oracle 数据库中数据集的要素和栅格内容。

有关 SDO_Geometry 的信息,请参阅 Oracle 文档。

栅格数据类型

Oracle 中的地理数据库中创建栅格数据集和镶嵌数据集时,应使用 RASTER_STORAGE 参数设置为 RASTERBLOB 的配置关键字。

旧版本:

虽然可使用 RASTER_STORAGE 参数设置为 BLOB 的配置关键字,但这种方法效率低下,主要适用于旧系统。