【问题标题】:Deleting top 100 objects in DQL statement删除 DQL 语句中的前 100 个对象
【发布时间】:2019-02-18 13:33:34
【问题描述】:

我需要从 dm_document 表中删除前 100 个对象。

我已经试过了:

  • 删除启用 object_name='TestObject' 的 dm_document 对象(RETURN_TOP 100);

  • 删除 r_object_id 所在的 dm_document 对象(从 dm_document where object_name='TestObject' enable (RETURN_TOP 100) 中选择 r_object_id);

但两者都不起作用。你有什么建议/想法吗?

【问题讨论】:

    标签: documentum opentext documentum-dql


    【解决方案1】:

    遗憾的是,一个 DQL 查询不可能,因为提示仅适用于 SELECT 用作主语句时的语句,子选择也无帮助。

    您可以使用 DFC(在 Java、Groovy 或任何可以使用 dfc.jar 的语言中)解决它。选择 100 个 ID,将它们连接到一个 String 中,并将它们作为 IN 子句提供到 DELETE 语句中,其中将明确列出所有 ID:

    DELETE dm_document OBJECT WHERE r_object_id IN ('0902e70480002d01', '0902e70480002d02', '0902e70480002d03', ...)
    

    【讨论】:

    • 感谢您的回答。确实,我将不得不使用 DFC api 使用 java 来完成。
    • 不客气。遗憾的是 Documentum 无法做到这一点 - 可能所有数据库都不支持这一点,因此不可能在 SQL 中翻译这样的 DQL。但是,如果您需要以 DA 或任何其他能够执行 DQL 的工具的管理员身份执行此操作,您可能还有另一个选择 -> 在 2 个单独的 SELECT 中选择 1.r_object_id 和 100.r_object_id r_object_id 然后在 WHERE 子句中的 DELETE 语句中使用这些 ID,如下所示 r_object_id >= 'id1' AND r_object_id <= 'id100'
    猜你喜欢
    • 2019-03-04
    • 1970-01-01
    • 2019-03-18
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    相关资源
    最近更新 更多