派生查询抛出错误 ORA-00604:递归 SQL 级别 1 时发生错误

Derived query throws error ORA-00604: error occurred at recursive SQL level 1

我的内部子查询 工作正常 从下面的查询中的 line 3 开始。 但是当我在其上进行查询时,它显示错误 ORA-00604:递归 SQL 级别 1

发生错误
  SELECT PU , CA , COUNT(CA) CNT FROM
      (
        SELECT CASE
        WHEN DP.STRVAL = 'A' then 'A1' 
        ELSE 'OTHERS' END PU,
        (CASE WHEN UPPER(CP.STRVAL) = 'YES' THEN 'YES' ELSE 'NO' END) CA 
        FROM DM.MAP AP
        LEFT OUTER JOIN DM.MAC BP ON AP.ISSUEID  = BP.ISSUE AND BP.CF = 'RD'
        LEFT OUTER JOIN DM.MAC CP ON AP.ISSUEID  = CP.ISSUE AND CP.CF = 'CA'
        LEFT OUTER JOIN DM.MAC DP ON AP.ISSUEID  = DP.ISSUE AND DP.CF = 'PU'    
      ) AB 
    GROUP BY PU, CA

上面的查询在第一个离开连接的行抛出错误

ORA-00604: error occurred at recursive SQL level 1
ORA-16000: database open for read-only access
00604. 00000 -  "error occurred at recursive SQL level %s"
*Cause:    An error occurred while processing a recursive SQL statement
           (a statement applying to internal dictionary tables).
*Action:   If the situation described in the next error on the stack
           can be corrected, do so; otherwise contact Oracle Support.
Error at Line: 15 Column: 19

我没有发现此查询有任何问题,但不确定为什么会抛出错误。

可能的问题在于:

ORA-16000: database open for read-only access

当您应用 JOINGROUP BY 时,可能需要一些 TEMP space。而且您没有访问临时文件的权限 space.

检查你是否有体温tablespace.

此外,

DM.MAP

您可以通过以 DM 用户身份登录来尝试查询吗?

如果它是本地管理的临时文件 tablespace,那么只要有适当的权限,就不会有问题。但是,我有一种强烈的感觉,你没有所需的权限。

我的建议是,请咨询您的 DBA,您的 DBA 可能会处理一些重要的事情。