Documentum DQL Получение подпапок из нескольких папок - PullRequest
2 голосов
/ 02 октября 2019

все! Я начинаю с Documentum в этом месяце и вот моя проблема. Существует мульти-выбор выпадающего списка с шкафами. Я должен выбрать некоторые из них, чтобы получить список внутренних папок в моем списке результатов ниже. Этот запрос:

select * from dm_folder where folder(id($param$))

или

select * from dm_folder where folder($param$)

, где param - имя_объекта

, работает с одним выпадающим списком. Я пытался вставить "в"

select * from dm_folder where folder in($param$)

результаты с

[DM_QUERY_E_SYNTAX]error:  "A Parser Error (syntax error) has occurred in the vicinity of:  select * from dm_folder where folder in" 

или

select * from dm_folder where folder(id in($param$))

результаты с

select * from dm_folder where folder(id in ('0c0511d48000105',' 0c0511d48000106'))

[DM_QUERY_E_SYNTAX]error:  "A Parser Error (syntax error) has occurred in the vicinity of:  select * from dm_folder where folder(id in"

и вернуть многозначный флаг в запросах выше, но это не работает. Может кто-нибудь помочь, пожалуйста? Спасибо!

1 Ответ

2 голосов
/ 02 октября 2019

Попробуйте с этим:

SELECT * FROM dm_folder WHERE r_object_id IN ('0c0511d48000105',' 0c0511d48000106')

Я думаю, понятно, где вы допустили ошибку. Ключевое слово FOLDER, которое вы использовали, является функцией, которая принимает одно значение в качестве параметра.

Из руководства по DQL:

The FOLDER predicate
The FOLDER predicate identifies what folders to search. The syntax is:
[NOT] FOLDER(folder_expression {,folder_expression} [,DESCEND])
The folder_expression argument identifies a folder in the current repository. You cannot search a
remote folder (a folder that does not reside in the current repository). Valid values are:
• An ID function
• The ID function (described in The ID function, page 29) identifies a particular folder.
• A folder path
A folder path has the format:
/cabinet_name{/folder_name}
Enclose the path in single quotes. Because cabinets are a subtype of folder, you can specify a
cabinet as the folder.
• The keyword DEFAULT
The keyword DEFAULT directs the server to search the user’s default folder. Note that a user’s
default folder is the same as the user’s default cabinet (because cabinets are a subtype of folders).

Редактировать 1 :

SELECT * FROM dm_folder WHERE ANY i_folder_id IN ('0c0511d48000105',' 0c0511d48000106')

С помощью этого запроса вы ищете объекты типа папок, родительские объекты которых являютсялюбая из папок, указанных в качестве параметра.

Редактировать 1 :

SELECT * FROM dm_folder WHERE i_cabinet_id IN (<list of ids>) 

Это вернет вам все объекты папки в кабинете

...