2013-05-09 102 views
-4

SQL這樣的:甲骨文缺少關鍵字

CREATE VIEW UOS_VU_COURSE_MODULES 
SELECT MODULE.MODULE_TITLE, STAFF.FIRST_NAME, STAFF.LAST_NAME, MODULE.SEMESTER, MODULE.CREDIT 
FROM STAFF, MODULE 
WHERE MODULE.COODINATOR_ID =STAFF.STAFF_ID AND COURSE.COURSE_ID=INFU101 AND 
COURSE.COURSE_ID=MGTU17 
ORDER BY MODULE.MODULE_TITLE 

看來ORA-00905:缺少關鍵字。

回答

2

缺少AS關鍵字:

CREATE VIEW UOS_VU_COURSE_MODULES 
AS 
SELECT 
    MODULE.MODULE_TITLE, STAFF.FIRST_NAME, STAFF.LAST_NAME, 
    MODULE.SEMESTER, MODULE.CREDIT 
FROM 
    STAFF, MODULE 
WHERE 
    MODULE.COODINATOR_ID = STAFF.STAFF_ID AND COURSE.COURSE_ID = INFU101 AND 
    COURSE.COURSE_ID = MGTU17 
ORDER BY MODULE.MODULE_TITLE 

參考:CREATE VIEW

0

視圖名稱後添加AS

create view UOS_VU_COURSE_MODULES AS 
1

有你的代碼存在的幾個問題。

  1. 當然,AS是必需的。

  2. 這種大寫的代碼風格確實難以閱讀,這就是爲什麼高速公路路標不再使用它。

  3. 連接樣式已過時,您應該使用ANSI SQL方法。

  4. 在course.course_id上​​有兩個謂詞,看起來應該是文字,但不幸的是,如果它們是互斥的話。

無論如何,你應該有一些看起來更可支持:

create view 
    uos_vu_course_modules 
as 
select 
    module.module_title, 
    staff.first_name , 
    staff.last_name , 
    module.semester , 
    module.credit 
from 
    staff join 
    module on (module.coodinator_id = staff.staff_id) 
where 
    course.course_id = 'INFU101' and 
    course.course_id = 'MGTU17' 
order by 
    module.module_title; 

也許WHERE子句應

course.course_id = 'INFU101' or 
    course.course_id = 'MGTU17'