使用 ArcSDE 命令迁移 Oracle 中的 LONG RAW 属性列
可以使用 sdetable 命令的 migrate 操作将 LONG RAW 非空间属性列迁移到 BLOB。通过指定 ATTRIBUTE_BINARY 参数设置为 BLOB 的 DBTUNE 配置关键字,此操作即可将属性列的存储从 LONG RAW 更改为 BLOB。
还可使用 sdetable 命令一次性迁移表中的所有 LONG RAW 列。例如,如果某个要素类使用 LONG RAW 栅格存储和 LONG RAW 几何存储并且包含 LONG RAW 二进制属性列,那么当您使用 sdetable 时,所有这三个列都将基于使用 –k 选项指定的配置关键字中所设置的参数进行转换。只要指定的配置关键字包含设置为 BLOB 的 ATTRIBUTE_BINARY 参数、设置为 SDELOB 或 ST_GEOMETRY 的 GEOMETRY_STORAGE 参数和设置为 BLOB 或 ST_RASTER 的 RASTER_STORAGE 参数,就会转换所有列数据类型。
sdetable –o migrate 的语法如下:
sdetable –o migrate –t <table> –k <config_keyword> [–i {<service> | <direct_connection>}] [–s <server>] –u <user_name> [–p <user_password>] [–N] [–q]
根据以下说明使用各选项:
选项 |
描述 |
---|---|
–o |
此选项指定要执行的操作,在本示例中为 migrate。 |
–t |
使用此选项可指定包含待迁移的一个或多个列的表的名称。 |
–k |
此选项指定 DBTUNE 配置关键字,该关键字用于定义要素类将迁移到的几何存储类型。关键字必须包含设置为 SDELOB 或 ST_GEOMETRY 的 GEOMETRY_STORAGE 参数(在 Oracle 数据库中),或设置为 GEOMETRY 或 GEOGRAPHY 的 GEOMETRY_STORAGE 参数(在 SQL Server 数据库中)。 |
–i |
提供直连语法,或者提供用于连接到地理数据库的 ArcSDE 服务的端口号或名称。 有关直连语法的信息,请参阅通过 ArcSDE 命令直连到 Oracle 中的地理数据库 (geodatabase) 或通过 ArcSDE 命令直连到 SQL Server 中的地理数据库 (geodatabase)。 |
–s |
指定数据库所在的服务器的名称。 |
–u |
指定要素类所有者登录数据库使用的用户名。 |
–p |
指定用户密码。 |
–N |
如果要禁止显示要求用户确认操作的提示,则指定此选项。 |
–q |
如果要禁止显示所有标题和警告,则指定此选项。 |
使用 sdelayer 命令的 migrate 操作时,如果以下任一情况为真,则将显示一条错误消息:
- 以基本精度存储数据。
- 使用 –u 指定的用户不是表所有者。
- 要素类的现有存储类型与指定的 DBTUNE 关键字相同。(也就是说,该表已经在使用您通过关键字指定的存储类型;因此,无需迁移。)
- 业务表不包含对象 ID 字段。
- 尝试在早于版本 9.2 的 ArcSDE 地理数据库中使用迁移操作。
- 尝试在 Oracle 或 SQL Server 以外的 DBMS 中使用迁移操作。
- 尝试迁移包含 3D 要素的 SDO_Geometry 要素类。由于 Oracle Spatial 不支持生成构成 3D Oracle 空间几何的熟知二进制或可识别文本,所以不能使用 sdelayer 命令迁移此数据。
-
对要迁移的数据创建备份。
对要迁移的数据创建备份副本,可以确保在迁移因任何原因失败后,您仍然具有一份原始数据。
- 打开 DOS 命令提示符 (Windows) 或 shell 命令提示符(UNIX 或 Linux)。
-
执行 sdetable 命令的 migrate 操作。例如:
sdetable –o migrate –t owners –k DEFAULTS –i 68910 –s mainserver –u bjar –p mine.all.mine
务必指定一个包含 ATTRIBUTE_BINARY 值(数据将转换为该值)的配置关键字。