我正在尝试创建一个包含列HospitalCode
、WardNo
、的视图BedNo
,DateLastServiced
并将这些列命名为 Hospital、Ward、Bed 和 Last Serviced。
CREATE VIEW HospitalCode, WardNo, BedNo, DateLastServiced
AS SELECT * FROM BED, WARD
我收到此错误,说我缺少关键字。有人可以帮忙吗?
您的 SQL 中有三个错误:
要定义视图中列的名称,您可以在 CREATE VIEW 语句中的视图名称之后列出它们(如手册中所述)
CREATE VIEW MyView1
(
hospital,
Ward,
Bed
Last_Serviced
)
AS
SELECT bed.HospitalCode,
ward.WardNo,
bed.BedNo,
ward.DateLastServiced
FROM BED
JOIN WARD on bed.bedno = ward.bedno;
由于您没有发布所涉及的两个表的定义,我不得不猜测哪一列来自哪个表。您将不得不调整选择以调整缺失的信息。但它应该给你足够的信息
更改视图列名称的另一个选项是使用列别名选择原始列:bed.HospitalCode as hospital
您错过了视图名称试试这个:
CREATE VIEW MyView1 AS SELECT HospitalCode, WardNo, BedNo, DateLastServiced
FROM BED, WARD
我也不确定 SELECT,因为我没有你的表结构。
更新
ORA-00918: 列定义不明确
这个错误表示BED、WARD这两个表都有相同的列名,所以oracle无法确定使用哪一个。
后输出
DESCRIBE TABLE BED;
DESCRIBE TABLE WARD;