可使用迁移存储地理处理工具将现有的二进制列、空间列或栅格列从一种存储类型迁移到另一种存储类型。为此,可以指定一个包含 ATTRIBUTE_BINARY、GEOMETRY_STORAGE 或 RASTER_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 | |
SQL Server | GEOMETRY_STORAGE | 从 SDEBINARY 到 Geometry |
从 SDEBINARY 到 Geography | ||
从 OGCWKB 到 Geometry | ||
从 OGCWKB 到 Geography | ||
从存储在相关表中的几何属性到存储在基表的列中的几何属性 |
提示:
如果要迁移的表已注册为版本,则将该表迁移到其他存储类型时也将更新 Adds 表中的相应列。如果要素类启用了存档,也将更新存档表中的相应列。
为何迁移数据?
以下是迁移数据的原因:
- 使用结构化查询语言 (SQL) 访问空间数据或栅格数据
- 从将来可能不受支持的数据类型迁移到受支持的数据类型
使用 SQL 访问数据
通过 SQL 访问地理数据库中的信息允许外部应用程序(不是在 ArcObjects 环境中开发的应用程序)使用地理数据库管理的表格数据。如果这些外部应用程序需要访问地理数据库中的空间数据或栅格数据,您必须将空间数据或栅格数据存储为允许 SQL 访问的数据类型。例如,ST_Geometry 存储类型允许通过 SQL 访问要素数据。如果将数据存储在 BLOB 或 long raw 字段中,将无法轻松访问这些数据。
迁移将来版本可能不支持的数据类型
Oracle 建议在其数据库中使用 BLOB 或 BFILE 数据类型,不建议使用 long raw 数据类型。尽管目前仍支持 long raw 列,但为了防止该数据类型将来不受支持,应将 Oracle 中当前地理数据库的 long raw 类型属性、几何或栅格字段迁移到其他格式。
地理数据库中属性列、几何列和栅格列的存储分别由配置参数 ATTRIBUTE_BINARY、GEOMETRY_STORAGE 和 RASTER_STORAGE 控制。如果您的 Oracle 地理数据库创建于 ArcGIS 9.2 或更早版本,则这些参数可能设置为使用 long raw 数据类型,因为这些数据类型是当时的默认类型。
如果您的 Oracle 地理数据库创建于 ArcGIS 9.3 或更新版本(并非升级自 ArcGIS 9.2 或更早版本),则您所创建的数据将不会使用 long raw 存储类型。但是,将任意一个或全部参数设置为 LONG RAW 而创建的现有数据,或者升级的地理数据库中将全部参数均设置为 LONG RAW 而创建的数据,仍将包含 long raw 列。要更改这些列的数据类型,必须更改配置关键字设置并迁移数据。
迁移先决条件
转换数据之前必须满足以下条件:
- 在迁移数据之前,必须对数据进行备份。
- 表或要素类必须注册到地理数据库。
- 迁移数据类型时所指定的配置关键字的 GEOMETRY_STORAGE、ATTRIBUTE_BINARY 或 RASTER_STORAGE 参数必须含有正确的值。例如,如果要将 long raw 几何列迁移到 ST_Geometry,但指定的关键字却将 GEOMETRY_STORAGE 参数设置为 SDO_GEOMETRY,迁移会因迁移路径不受支持而失败。
- 必须以待迁移表所有者的身份进行登录。