ORA-22806(不是对象或REF)加入视图

问题描述 投票:2回答:1

这是一个相当简单的查询,抛出此错误:

SELECT RR.REQUEST_ID
FROM CCS_REQUEST_RESPONSE RR 
INNER JOIN VW_STUDENT_CURRENT_AND_HIST VW
ON RR.STUDENTID = VW.STUDENT_NUMBER

这仅在加入视图时发生。 视图是一个简单的联合所有2个相同的表。当我替换单个表而不是上面的查询中的视图时,它工作正常。

所以,

SELECT RR.REQUEST_ID
FROM CCS_REQUEST_RESPONSE RR 
INNER JOIN HISTORICAL_STUDENTS VW
ON RR.STUDENTID = VW.STUDENT_NUMBER

工作得很好。

以下是观点:

 CREATE OR REPLACE VIEW "VW_STUDENT_CURRENT_AND_HIST" ("STUDENT_NUMBER") AS 
  SELECT "STUDENT_NUMBER"
    FROM HISTORICAL_STUDENTS
UNION ALL
  SELECT "STUDENT_NUMBER"
      FROM CURRENT_YEAR_STUDENTS;

有趣的是,这曾经工作并突然停止。有任何想法吗?

sql oracle join plsql views
1个回答
0
投票

解决了。

视图中的两个表虽然在字段名称和定义方面相同,但具有不同的字段顺序。 我放弃并使用与另一个相同的DDL重新创建其中一个表,现在它正常工作。

我不知道为什么会出现问题,但也许其他人可以回答这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.