Я работаю с содержимым веб-центра Oracle (WCC), также известным как UCM, и мне нужно выполнить пользовательский экспорт, аналогичный репликации одной версии. Я не могу использовать репликацию с одной ревизией, так как в моей версии сервера UCM (11.1.1.8.0) есть ошибка, а на сервере Destiny уже может быть несколько ревизий этого файла. Итак, я попытался воспроизвести запрос, сгенерированный опцией предварительного просмотра в апплете архиватора, когда я выбираю репликацию с одной ревизией. Для каждого уникального идентификатора контента мне нужно экспортировать только самую последнюю версию, соответствующую запросу, поэтому я пробовал следующее:
Revisions.dID IN (select max (REV22.dID) from Revisions REV22, DocMeta,
Documents where REV22.dID = Documents.dID and REV22.dID = DocMeta.dID and
Documents.dlsPrimary <> 0 AND REV22.dReleaseState <> 'E' and
REV22.dReleaseState <> 'N' and (
xCollectionID <> 0 and (
Revisions.dDocName like 'ABCD%' or
) and (
(dInDate BETWEEN {ts '2017-11-10 12:00:00.000'} AND {ts '2017-11-10 17:00:00.000'})
))
and REV22.dRevClassID = Revisions.dRevClassID)
Но это не работает, WCC выдает следующую ошибку при предварительном просмотре:
Журнал сервера:
Журнал архиватора:
Событие, сгенерированное пользователем XXXX на хосте YYYY. Отредактированы свойства архива 'AAAA' в коллекции 'BBBB'. Обновленные значения: aExportQuery = Standard Query ValuePanel UseExportDate 0 AllowExportPublished 0 AllRevisions 1 LatestRevisions 0 NotLatestRevisions 0 MostRecentMatching 0 CurrentIndex 1 Clauses xCollectionID:numberNotEquals:0,dDocName:sqlEq:CCCC CustomQuery Revisions.dID%IN%(select%max%(REV22.dID) )%from%Revisions%REV22,%DocMeta, Documents%where%REV22.dID%=%Documents.dID%and%REV22.dID%=%DocMeta.dID%and Documents.dlsPrimary%‹>%0%AND%REV22 .dReleaseState%‹>%'E'%и REV22.dReleaseState%‹>%'N'%and%%(
xCollectionID%‹>%0%and%( Revisions.dDocName%like%'ABCD#%'%or )%and%( %(dInDate%BETWEEN%{ts%'2017-11-10%12:00:00.000' }%AND%{ts%'2017-11-10%17:00:00.000'})) и%REV22.dRevClassID%=%Revisions.dRevClassID) IsCustom 1.
Журнал аудита системы
Если вы посмотрите на трассировку вашей системной базы данных, вы найдете два оператора select. Первый можно игнорировать. Второй - это то, что дает вам проблему. Он состоит из стандартного оператора вместе с вашими дополнениями.
Если вы извлечете этот оператор select из трассировки и попробуете запустить его в SQL Developer, вы обнаружите, что здесь чего-то не хватает:
Откройте «Администрирование» — «Информация об аудите системы». Добавьте systemdatabase в активные разделы. Повторите экспорт, а затем найдите соответствующие части выходных данных сервера. Разместите их здесь.
Я добавил то, что вы просили