【问题标题】:Error report: SQL Error: ORA-00904: : invalid identifier 00904. 00000 - "%s: invalid identifier"错误报告:SQL 错误:ORA-00904::无效标识符 00904。00000 - “%s:无效标识符”
【发布时间】:2016-09-16 07:19:34
【问题描述】:

我正在使用 SQL Developer 对 Oracle 数据库运行此查询。它给了我一条关于无效标识符“%s”的错误消息。我做错了什么?

WITH security_menu_Recursive(Parent,MenuId,obj,LEVEL)
    AS
    (
        SELECT MZMNI,MZMTOE,MZOBNM,0 AS LEVEL FROM 
        
    PRODDTA.PBS.PRODCTL.F00821
    WHERE MZMNI = 'G5509L2'
        UNION ALL
        SELECT MZMNI,MZMTOE,MZOBNM,Level + 1 AS LEVEL
         FROM PRODDTA.PBS.PRODCTL.F00821
        INNER JOIN security_menu_Recursive AS smr ON smr.mENUID = 
     MZMNI
    )
    SELECT parent,menuid,OBJ,LEVEL FROM security_menu_Recursive

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    LEVEL 是一个reserved word,在hierarchical query 语法中具有特殊含义。即使在使用分层查询时,如果您想在外部查询中引用该伪列,也必须将该伪列别名为另一个名称。

    您需要将该别名的名称更改为其他名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2021-07-18
      • 2016-10-15
      相关资源
      最近更新 更多