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。 |