ArcGIS 所支持的 Oracle 数据类型

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

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

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

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

ArcGIS 数据类型

创建的 Oracle 数据类型

其他可查看的 Oracle 数据类型

备注

BLOB

BLOB

DATE

DATE

DOUBLE

DECIMAL(31,8)

DECIMAL(p,s)

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

FLOAT

DECIMAL(31,8)

DECIMAL(p,s)

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

GEOMETRY

ST_GEOMETRY NUMBER(38) or SDO_GEOMETRY

Oracle 数据类型取决于创建要素类时指定的几何存储。压缩二进制或熟知二进制(仅企业级地理数据库)= NUMBER(38);Oracle Spatial = SDO_GEOMETRY;空间类型 = ST_GEOMETRY。

ST_Geometry 是一个超类。在 ArcGIS for Desktop 中创建要素类时,始终使用 ST_Geometry。如果使用 SQL 创建空间列,则实际创建的数据子类型(例如 ST_Multilinestring 或 ST_Point)取决于您所指定的子类型。

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

GUID 或全局 ID

CHAR or NCHAR (UUID LEN)

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

LONG INTEGER

NUMBER(38)

NUMBER(n)

值 n 的取值范围是 5 到 10。如果使用 ArcGIS for Desktop 或 ArcObjects 创建并将精度设置为 0,则会在数据库中创建 NUMBER(38)。否则将使用指定精度。

OBJECTID

NUMBER(38) when created in an enterprise geodatabase

NUMBER(38) with sequence and trigger when created in a database

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

RASTER

BLOB, LONG RAW, SDO_GEORASTER, or ST_RASTER

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

SHORT INTEGER

NUMBER(5)

NUMBER(n)

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

使用 ArcGIS for Desktop 创建时,n = 5。这种情况下,您可以存储介于允许范围之内的短整型值。

TEXT

VARCHAR2、CLOB、NVARCHAR2 或 NCLOB

如果未将数据库设置为使用 Unicode 编码,则将创建 VARCHAR2 字段。

如果将文本字段的大小设置为大于 4,000,且将数据库设置为使用 Unicode 编码,那么 Oracle 数据类型将为 CLOB。

如果将数据库设置为使用 Unicode 编码,那么字段将创建为 NVARCHAR2。(这是 Oracle 中企业级地理数据库的默认设置。)

如果将文本字段的大小设置为大于 2,000,且将数据库设置为使用 Unicode 编码,那么 Oracle 数据类型将为 NCLOB。

ArcGIS 所支持的 Oracle 数据类型
9/15/2013