SQL 命令在 as 语句后没有正确结束

SQL command not properly ended after the as statement

我想创建一个名为 PROJECT_FEMALE 的视图。来自 3 个不同的表,但 sql 给了我那个错误。

CREATE VIEW PROJECT_FEMALE 
AS
    SELECT e.Ssn, e.Fname, e.Lname, p.Pnumber, p.Pname, w.Hours
    FROM Employee AS e, Works_on AS w, Project AS p
    WHERE e.Ssn = w.Essn AND w.pno = p.Pnumber AND e.sex = 'F';

错误:

[Code: 933, SQL State: 42000] ORA-00933: SQL command not properly ended
[Script position: 103 - 105]

它指向 Employee 之后的语句,但我不明白问题出在哪里,我该如何解决?

Oracle 不支持 table 带有 AS 的别名,您只能使用 AS 作为列别名;所以,你的代码应该是:

CREATE VIEW PROJECT_FEMALE
AS
   SELECT e.Ssn,
          e.Fname,
          e.Lname,
          p.Pnumber,
          p.Pname,
          w.Hours
     FROM Employeee, Works_on w, Project p
    WHERE e.Ssn = w.Essn AND w.pno = p.Pnumber AND e.sex = 'F';

或(更好)

CREATE VIEW PROJECT_FEMALE
AS
   SELECT e.Ssn,
          e.Fname,
          e.Lname,
          p.Pnumber,
          p.Pname,
          w.Hours
     FROM Employee e
          INNER JOIN Works_on w ON (e.Ssn = w.Essn)
          INNER JOIN Project p ON (w.pno = p.Pnumber)
    WHERE e.sex = 'F';