0

我想知道 DQL 中是否有一种方法可以根据开始行和结束行值获取行。(如行号 1 - 1000、1001 - 2000)。(类似于 oracle 查询中的 rownumber )。

这个输入会有很大帮助。

4

2 回答 2

2

对于Documentum DQL 查询分页,您可以(应该)使用 RETURN RANGE 提示,如下所示

select * from dm_document where object_name like 'ABC%' enable(RETURN_RANGE 1001 2000 1000 'object_name ASC' )

它将按 object_name 对文档进行排序,然后返回最多 1K 行,从行号 1001 到 2000 开始,针对 1K 顶部(已排序)行进行了优化。

语法是RETURN_RANGE starting_row ending_row [optimize_top_row] 'sorting_clause'

它从Content Server CS 6.6开始与任何底层数据库一起工作。

Documentum 社区参考

于 2017-02-14T17:04:23.640 回答
1

我不相信使用 DQL 是可能的。但是,您可以查阅 DQL 参考指南(检查Powerlink),其中包含有关 DQL 提示的信息(有一个关于它们的部分)。有一个关于传递提示的讨论,允许您将提示传递到底层 RDBMS。可用的提示取决于它是 Oracle、SQL Server、DB2 等。

这是该部分的摘录:

传递提示是传递给 RDBMS 服务器的提示。它们不由 Content Server 处理。

SQL Server 和 Sybase 有两种提示:适用于单个表的提示和全局适用于整个语句的提示。为了适应这种情况,您可以在 SELECT 语句的源列表中或语句末尾包含传递提示。您包含在源列表中的提示必须是特定于表的提示。您在语句末尾包含的提示必须是全局提示。例如,以下语句包括 Sybase 在表级别和语句级别的直通提示:

SELECT "r_object_id" FROM "dm_document" WITH
(SYBASE('NOHOLDLOCK')) WHERE "object_name"='test' ENABLE (FORCE_PLAN)

对于 DB2 和 Oracle,仅在 SELECT 语句的末尾包含传递提示。

于 2013-08-08T13:54:58.093 回答