Конец как ключевое слово в заявлении Oracle SQL Case

Я использую два случая в запросе ниже, чтобы получить результаты daction & ApprovalType. При выполнении приведенного ниже запроса в Oracle SQL создает два новых временных столбца как daction_1 & ApprovalType _1 для столбцов daction и ApprovalType соответственно. Теперь я хочу использовать эти ключевые слова в своем коде IDOC, но так как временные столбцы созданы, я не могу их использовать. Как решить это?

SELECT WH.dActionDate,
  WH.xWF_SendTo,
  WH.dAction,
  ATY.ApprovalType,
  WH.xWorkflowComments,
  CASE
    WHEN NVL(ApprovalType,'') IS NULL
    THEN xPurposeForRejection
    ELSE ApprovalType
  END AS ApprovalType,
  CASE
    WHEN NVL(dAction,'')      ='SendTo'
    AND NVL(ApprovalType,'') IS NOT NULL
    OR NVL(dAction,'')        ='Approve'
    THEN 'Approve'
    ELSE 'Reject'
  END AS dAction
FROM WorkflowHistory WH,
  Reason Re,
  ApprovalType ATY
WHERE UPPER(dDocName)     = UPPER('D_1239178')
AND xPurposeForSubmission = Re.ReasonID(+)
AND xDocApproval          = ATY.ApprovalTypeID(+)
AND (dAction             IN('Reject','Approve')
OR (dAction               ='SendTo'
AND ApprovalType         IS NOT NULL))
AND ROWNUM               <= 5
ORDER BY dActionDate DESC,
  dActionMillis

1 ответ

Глядя на названия столбцов, я предполагаю, что Idoc это язык сценариев, используемый в Oracle Webcenter Content Server (ранее Oracle UCM). У меня нет под рукой работающего экземпляра для проверки, но я уверен, что вы можете создать представление базы данных с нужными вам столбцами, а затем увидеть его как обычную таблицу в Configuration Manager. Следующая ссылка предоставляет некоторые детали процесса настройки. Другой вариант - переместить вашу логику в сам код Idoc, хотя он может быть менее производительным.

Другие вопросы по тегам