不同存储类型之间的数据迁移

可使用迁移存储地理处理工具将现有的二进制列、空间列或栅格列从一种存储类型迁移到另一种存储类型。为此,可以指定一个包含 ATTRIBUTE_BINARYGEOMETRY_STORAGERASTER_STORAGE 参数的配置关键字,并将参数设置为数据转换的目标存储类型。

创建配置关键字,并使关键字包含正确的参数和值,这一点非常重要。如果指定的关键字信息错误或缺失,则将从 DEFAULTS 关键词读取信息。Esri 建议创建专门用于迁移的自定义关键字。 确保关键字中包含将要向其中迁移数据的参数和值,以及 UI_TEXT 参数。UI_TEXT 参数使关键字也可用于 ArcGIS 客户端。将此关键字提供给数据集所有者,因为他们必须运行迁移存储工具。

以下为 Oracle 中受支持的地理数据库迁移路径:

配置参数迁移路径

ATTRIBUTE_BINARY

从 Long raw 到 BLOB

GEOMETRY_STORAGE

从 Long raw (SDEBINARY) 到 BLOB (SDELOB)

从 Long raw (SDEBINARY) 到 ST_Geometry

从 BLOB (SDELOB) 到 ST_Geometry

从 SDO_Geometry 到 ST_Geometry

RASTER_STORAGE

从 Long raw 到 BLOB

提示:

如果已注册要进行迁移的表以参与传统版本化,则将该表迁移到其他存储类型时也将更新 Adds 表中的相应列。如果要素类启用了存档,也将更新存档表中的相应列。

为何迁移数据?

以下是迁移数据的原因:

  • 使用结构化查询语言 (SQL) 访问空间数据或栅格数据
  • 从将来可能不受支持的数据类型迁移到受支持的数据类型

使用 SQL 访问数据

通过 SQL 访问地理数据库中的信息允许外部应用程序(不是在 ArcObjects 环境中开发的应用程序)使用地理数据库管理的表格数据。如果这些外部应用程序需要访问地理数据库中的空间数据或栅格数据,您必须将空间数据或栅格数据存储为允许 SQL 访问的数据类型。例如,ST_Geometry 存储类型允许通过 SQL 访问要素数据。如果将数据存储在 BLOB 或 long raw 字段中,将无法轻松访问这些数据。

迁移将来版本可能不支持的数据类型

Oracle 建议在其数据库中使用 BLOB 或 BFILE 数据类型,不建议使用 long raw 数据类型。尽管目前仍支持 long raw 列,但为了防止该数据类型将来不受支持,应将 Oracle 中当前地理数据库的 long raw 类型属性、几何或栅格字段迁移到其他格式。

地理数据库中属性列、几何列和栅格列的存储分别由配置参数 ATTRIBUTE_BINARYGEOMETRY_STORAGERASTER_STORAGE 控制。如果在 ArcGIS 9.2 或更早版本中创建 Oracle 地理数据库,则这些参数可能设置为使用 long raw 数据类型,因为这些数据类型是当时的默认类型。

如果在 ArcGIS 9.3 或更高版本(并非升级自 ArcGIS 9.2 或更早版本)中创建 Oracle 地理数据库,则您所创建的数据将不会使用 long raw 存储类型。但是,将任意一个或全部参数设置为 LONG RAW 而创建的现有数据,或者升级的地理数据库中将全部参数均设置为 LONG RAW 而创建的数据,仍将包含 long raw 列。要更改这些列的数据类型,必须更改配置关键字设置并迁移数据。

迁移先决条件

转换数据之前必须满足以下条件:

  • 在迁移数据之前,必须对数据进行备份。
  • 表或要素类必须注册到地理数据库。
  • 迁移数据类型时所指定的配置关键字的 GEOMETRY_STORAGEATTRIBUTE_BINARYRASTER_STORAGE 参数必须含有正确的值。例如,如果要将 long raw 几何列迁移到 ST_Geometry,但指定的关键字却将 GEOMETRY_STORAGE 参数设置为 SDO_GEOMETRY,迁移会因迁移路径不受支持而失败。
  • 必须以待迁移表所有者的身份进行登录。