带有两个标识符的Oracle条件索引

带有两个标识符的Oracle条件索引,oracle,indexing,Oracle,Indexing,可以在两列上创建条件索引吗 CREATE UNIQUE INDEX idx_dup_wfc ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1 THEN (NAME, DEPT_OWNER) ELSE NULL END) 返回ORA-00906:缺少左括号,但以下操作有效 CREATE UNIQUE INDEX idx_dup_wfc ON WF_WORKFLOW_CLASS (CASE WHEN

可以在两列上创建条件索引吗

CREATE UNIQUE INDEX idx_dup_wfc
    ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
      THEN (NAME, DEPT_OWNER)
         ELSE NULL
      END)
返回
ORA-00906:缺少左括号
,但以下操作有效

CREATE UNIQUE INDEX idx_dup_wfc
    ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
      THEN NAME
         ELSE NULL
      END)

可以,但您必须为每列执行一个案例:

CREATE UNIQUE INDEX idx_dup_wfc
    ON WF_WORKFLOW_CLASS 
     (CASE WHEN is_active = 1 THEN NAME END
     ,CASE WHEN is_active = 1 THEN DEPT_OWNER END
     )
(代码中的ELSE是多余的)