常见问题

常见问题解答:是否可以删除多版本化视图,而不在表注册表中留下条目?

Last Published: May 3, 2021

答案

注: ArcSDE 软件(包括应用程序服务器、命令工具以及带有 C 和 Java API 的 SDK)在 ArcGIS 10.2.2 中已弃用,不再进行分发。

是。 要删除多版本化视图,必须使用 sdetable -o delete_mv_view。

对于 -t,需要指定从中创建视图的表或图层的名称。 例如,可以使用在 -t 选项中使用的相同值来创建多版本化视图。 此过程如下所示:

代码: C:>sdetable -o create_mv_view -T shale_vw -t shale -i esri_sde -u sde -p sde ArcSDE 9.1 Oracle10g Build 407 Mon Mar 5 10:50:46 PST 2007 Attribute Administration Utility ----------------------------------------------------- Successfully created MV view shale_vw for table shale. C:\>sdetable -o delete_mv_view -t shale -i esri_sde -u sde -p sde ArcSDE 9.1 Oracle10g Build 407 Mon Mar 5 10:50:46 PST 2007 Attribute Administration Utility ----------------------------------------------------- Delete MV view for table shale? Are you sure? (Y/N): y Successfully deleted MV view for table shale.

借助以上方法,可以随后创建一个多版本化视图,而不会出现任何问题,如下所示:

代码: C:\>sdetable -o create_mv_view -T shale_vw -t shale -i esri_sde -u sde -p sde ArcSDE 9.1 Oracle10g Build 407 Mon Mar 5 10:50:46 PST 2007 Attribute Administration Utility ----------------------------------------------------- Successfully created MV view shale_vw for table shale.
警告: 使用 sdetable -o delete -t <view_name> 将留下分离的条目,这些条目将原始表或图层与表注册表中的多版本化视图相关联。 必须手动更正此问题。 如果未手动更正此问题,则在重新创建多版本化视图时将出现错误。 例如:
代码: C:\>sdetable -o create_mv_view -T beach_vw -t beach -i esri_sde -u sde -p sde ArcSDE 9.1 Oracle10g Build 407 Mon Mar 5 10:50:46 PST 2007 Attribute Administration Utility ----------------------------------------------------- Successfully created MV view beach_vw for table beach. C:\>sdetable -o delete -t beach_vw -i esri_sde -u sde -p sde ArcSDE 9.1 Oracle10g Build 407 Mon Mar 5 10:50:46 PST 2007 Attribute Administration Utility ----------------------------------------------------- Delete table beach_vw! Are you sure? (Y/N): y Successfully deleted table beach_vw. C:\>sdetable -o create_mv_view -T beach_vw -t beach -i esri_sde -u sde -p sde ArcSDE 9.1 Oracle10g Build 407 Mon Mar 5 10:50:46 PST 2007 Attribute Administration Utility ----------------------------------------------------- Error: DBMS view exists (-238). Error: Unable to create MV view beach_vw for table beach.

如果出现上述情况,请使用 SQL 清理表注册表中的条目,如下所示。

对于 Oracle,以 SDE 用户身份进行连接,然后运行以下更新语句:

代码: UPDATE table_registry SET imv_view_name = NULL WHERE table_name = 'BEACH' AND owner = '<owner of BEACH>'

对于 SQLServer,以 SDE 用户身份或数据库操作 (DBO) 身份(如果使用 DBO 方案)进行连接,然后运行以下更新语句:

代码: UPDATE sde_table_registry SET imv_view_name = NULL WHERE table_name = 'BEACH' AND owner = '<owner of BEACH>'
注: 在 9.2 版本中,将由 ArcADE 清理分离的条目。

文章 ID:000009475

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

发现关于本主题的更多内容