可使用迁移存储地理处理工具将现有的二进制列、空间列或栅格列从一种存储类型迁移到另一种存储类型。为此,可以指定一个包含 ATTRBUTE_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 | |
从 Long raw 到 ST_Raster* | ||
从 BLOB 到 ST_Raster* | ||
PostgreSQL | RASTER_STORAGE | 从 Bytea 到 ST_Raster* |
SQL Server | RASTER_STORAGE | 从 Image 到 ST_Raster* |
GEOMETRY_STORAGE | 从 SDEBINARY 到 Geometry | |
从 SDEBINARY 到 Geography | ||
从 OGCWKB 到 Geometry | ||
从 OGCWKB 到 Geography | ||
从存储在相关表中的几何属性到存储在基表的列中的几何属性 |
*地理数据库中必须安装 ST_Raster。有关说明,请参阅在 Oracle 中安装 ST_Raster、在 PostgreSQL 中安装 ST_Raster 或在 SQL Server 中安装 ST_Raster。
为何迁移数据?
迁移栅格数据允许使用结构化查询语言 (SQL) 对其进行访问。
使用 SQL 访问数据
通过 SQL 访问地理数据库中的信息允许外部应用程序(不是在 ArcObjects 环境中开发的应用程序)使用地理数据库管理的表格数据。如果这些外部应用程序需要访问地理数据库中的空间数据或栅格数据,您必须将空间数据或栅格数据存储为允许 SQL 访问的数据类型。例如,ST_Geometry 存储类型允许通过 SQL 访问要素数据。如果将数据存储在 BLOB 或 long raw 字段中,将无法轻松访问这些数据。
迁移先决条件
转换数据之前必须满足以下条件:
- 在迁移数据之前,必须对数据进行备份。
- 如果要转换空间列数据类型,必须采用高精度存储数据。如果当前采用基本精度存储数据,则必须首先将数据迁移到高精度,然后才能迁移存储类型。使用升级空间参考地理处理工具升级到高精度。
- 表或要素类必须注册到地理数据库。
- 迁移数据类型时所指定的配置关键字的 GEOMETRY_STORAGE、ATTRIBUTE_BINARY 或 RASTER_STORAGE 参数必须含有正确的值。例如,如果要将 long raw 几何列迁移到 ST_Geometry,但指定的关键字却将 GEOMETRY_STORAGE 参数设置为 SDO_GEOMETRY,迁移会因迁移路径不受支持而失败。
- 必须以包含待迁移列的表的所有者身份登录。
- 将要素类迁移到 SQL Server Geography 类型的要求:数据必须采用 Geography 类型支持的地理坐标系。