Oracle缺少关键字

Oracle缺少关键字,oracle,Oracle,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=M

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:缺少关键字。

缺少
作为
关键字:

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 UOS_VU_COURSE_MODULES AS

您的代码存在一些问题

  • 当然,这是必需的

  • 这种大写代码样式确实很难阅读,这就是为什么高速公路路标不再使用它的原因

  • 联接样式已经过时,您应该使用ANSI SQL方法

  • 在course.course\u 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'