ORA-32035: unreferenced query name defined in WITH clause

文档解释

ORA-32035: unreferenced query name defined in WITH clause

Cause: There is at least one WITH clause query name that is not referenced in any place.

Action: remove the unreferenced query name and retry

ORA-32035错误是Oracle数据库在检测SQL语句时发出的错误消息,提示用户在WITH子句中定义了未引用的查询名称。在WITH子句中,查询名称定义了一个临时视图或子查询,其中只能够在它的范围内使用,而无法被其他查询引用。

官方解释

ORA-32035是SQL语句解析器在检测SQL语句时发出的一种消息,表示在WITH子句中定义的查询名称未被使用或引用到。

常见案例

案例1:

语句:

SELECT * FROM (with t1 as (

select * from tb_p

)

select * from tb_c

)

此处t1定义无法被其他查询引用,所以会发出ORA-32035错误消息。

案例2:

语句:

SELECT salary

FROM (WITH SA_EMP(ID, SALARY) AS

(SELECT EMPID, SALARY FROM EMPLOYEES)

SELECT * FROM SA_EMP);

此处SA_EMP定义未被使用或引用,会发出ORA-32035错误消息。

一般处理方法及步骤

处理此错误的常见方法是,在WITH子句中将未使用的查询名称删除,或者添加相关的引用。

1.检查SQL语句,寻找未引用的查询名称定义;

2.确保在WITH子句中定义的查询名称在其他子句中被引用;

3.如果未被引用,则删除未被使用的查询名称定义或者去掉WITH子句,或者添加相关的引用。

你可能感兴趣的