-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: キーワードがありません。

4

3 に答える 3

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

于 2013-05-09T09:29:54.550 に答える
1

あなたのコードにはいくつかの問題があります。

  1. もちろん、AS が必要です。

  2. 大文字のコード スタイルは非常に読みにくいため、高速道路の道路標識で使用されなくなりました。

  3. 結合スタイルは時代遅れであり、ANSI SQL メソッドを使用する必要があります。

  4. course.course_id に 2 つの述語があり、それらはリテラルであるように見えますが、残念ながら、それらがそうである場合、それらは互いに矛盾します。

とにかく、よりサポートしやすいものを用意する必要があります。

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'
于 2013-05-09T19:57:35.397 に答える
0

ASビュー名の後に追加:

create view UOS_VU_COURSE_MODULES AS
于 2013-05-09T09:30:37.693 に答える