创建一个视图SQL,总是得到错误

时间:2016-01-04 16:46:55

标签: sql oracle

CREATE VIEW CARAVAN AS
    SELECT ANNUAL_RENT, BOOKING_FEE
    FROM CARAVAN
    WHERE ANNUAL_RENT < 3000

这是我失败的sql。错误是

  

ORA-00928:缺少SELECT关键字

1 个答案:

答案 0 :(得分:3)

尝试只运行SELECT声明:

SELECT ANNUAL_RENT, BOOKING_FEE
FROM CARAVAN
WHERE ANNUAL_RENT < 3000

看看是否会返回结果,或者是否会产生错误。

我怀疑CARAVAN是一个INVALID的视图。您可以使用字典视图中的查询来检查,例如

SELECT *
  FROM dba_objects
 WHERE object_name = 'CARAVAN'

如果您没有dba_objects的权限,请改为引用all_objects

引用的CARAVAN对象是架构中的对象,公共同义词或无效引用。

正如Alex Poole所提到的,通过使用CREATE FORCE VIEW语句,可以创建一个语法无效的视图。 (我怀疑引用的对象CARAVAN是一个包含无效语法的视图。)

Oracle中的标识符必须在模式中唯一。非常奇怪的是,您将创建一个名为CARAVAN的视图,该视图引用已命名为CARAVAN的对象。目前尚不清楚您尝试使用此特定CREATE VIEW语句解决的问题。