在两个表和视图上创建视图不应允许任何DML操作

时间:2016-11-09 13:46:17

标签: oracle

我在学校要做的一个问题要求我做以下事情:

"创建一个名为TITLE_UNAVAIL的视图来显示电影标题和media_id 媒体尚未归还。视图不应允许任何DML操作。 "

这是我的剧本:

CREATE VIEW TITLE_UNAVAIL7
FROM RENTAL_HISTORY7
SELECT title, media_id
WHERE return_date = null

我收到错误说:

  

" ORA-00905:缺少ketword"

有人可以就我做错了什么提出建议吗?

2 个答案:

答案 0 :(得分:3)

首先,您应该阅读文档:CREATE VIEW

CREATE VIEW TITLE_UNAVAIL7 AS
SELECT title, media_id
FROM RENTAL_HISTORY7
WHERE return_date IS null;

这将是标准答案(正如您在其他人身上看到的那样)。为了防止此视图中出现任何DML,请添加WITH READ ONLY,即

CREATE VIEW TITLE_UNAVAIL7 AS
SELECT title, media_id
FROM RENTAL_HISTORY7
WHERE return_date IS null
WITH READ ONLY;

答案 1 :(得分:1)

您没有使用正确的syntax;另外,您无法使用null检查= null值列,但需要is null

CREATE VIEW TITLE_UNAVAIL7 AS
SELECT title, media_id
FROM RENTAL_HISTORY7
WHERE return_date is null