0

我在下面的查询中使用了两种情况来获取 daction 和 ApprovalType 的结果。在 Oracle SQL 中运行以下查询时,会分别为 daction 和 ApprovalType 列创建两个新的临时列作为 daction_1 和 ApprovalType _1。现在,我想在我的 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
4

1 回答 1

0

查看列名,我假设它Idoc是 Oracle Webcenter Content Server(以前称为 Oracle UCM)中使用的脚本语言。我手头没有正在运行的实例要检查,但我很确定您可以使用所需的列创建数据库视图,然后在 Configuration Manager 中将其视为常规表。以下链接提供了配置过程的一些详细信息。另一种选择是将您的逻辑移动到 Idoc 代码本身,尽管它可能性能较差。

于 2014-01-21T04:36:06.547 回答