Jas*_*her 6 sql database documentum dql dfc
我想从一个文件柜(称为“Wombat Insurance Co”)中检索所有文件。目前我正在使用这个 DQL 查询:
select r_object_id, object_name from dm_document(all)
where folder('/Wombat Insurance Co', descend);
Run Code Online (Sandbox Code Playgroud)
这是可以的,除了它最多只返回 100 个结果。如果文件柜中有 5000 个文件,我想获得所有 5000 个结果。有没有办法使用分页来获得所有结果?
我试过这个查询:
select r_object_id, object_name from dm_document(all)
where folder('/Wombat Insurance Co', descend)
ENABLE (RETURN_RANGE 0 100 'r_object_id DESC');
Run Code Online (Sandbox Code Playgroud)
旨在以 100 个文件为增量获得结果,但是当我尝试执行该查询时,它给了我一个错误。错误是这样说的:
com.emc.documentum.fs.services.core.CoreServiceException: "QUERY" action failed.
java.lang.Exception: [DM_QUERY2_E_UNRECOGNIZED_HINT]error:
"RETURN_RANGE is an unknown hint or is being used incorrectly."
Run Code Online (Sandbox Code Playgroud)
我想我正确地使用了 RETURN_RANGE 提示,但也许我没有。任何帮助,将不胜感激!
我也尝试过使用提示,ENABLE(FETCH_ALL_RESULTS 0)但这仍然最多只返回 100 个结果。
澄清一下,我的问题是:如何从机柜中获取所有文件?
啊哈,我已经弄清楚了。将 DFS 与 Java(DFC 之上的抽象层)结合使用,您可以设置查询结果的起始索引:
String queryStr = "select r_object_id, object_name from dm_document(all)
where folder('/Wombat Insurance Co', descend);"
PassthroughQuery query = new PassthroughQuery();
query.setQueryString(queryStr);
query.addRepository(repositoryStr);
QueryExecution queryEx = new QueryExecution();
queryEx.setCacheStrategyType(CacheStrategyType.DEFAULT_CACHE_STRATEGY);
queryEx.setStartingIndex(currentIndex); // set start index here
OperationOptions operationOptions = null;
// will return 100 results starting from currentIndex
QueryResult queryResult = queryService.execute(query, queryEx, operationOptions);
Run Code Online (Sandbox Code Playgroud)
您只需增加currentIndex变量即可获得所有结果。
| 归档时间: |
|
| 查看次数: |
16141 次 |
| 最近记录: |