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

时间:2015-10-20 14:55:46

标签: sql oracle join plsql views

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

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;

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

1 个答案:

答案 0 :(得分:0)

解决。

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

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