我正在尝试创建包含HospitalCode
,WardNo
,BedNo
,DateLastServiced
列的视图,并将这些列命名为Hospital,Ward,Bed和Last Serviced。
CREATE VIEW HospitalCode, WardNo, BedNo, DateLastServiced
AS SELECT * FROM BED, WARD
我收到此错误,说我错过了一个关键字。有人可以帮忙吗?
答案 0 :(得分:3)
SQL中有三个错误:
要在视图中定义列的名称,您可以在CREATE VIEW语句中的视图名称之后列出它们(作为documented in the manual)
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
答案 1 :(得分:0)
你错过了观看名称试试这个:
CREATE VIEW MyView1 AS SELECT HospitalCode, WardNo, BedNo, DateLastServiced
FROM BED, WARD
我也不确定SELECT,因为我没有表的结构。
<强>更新强>
ORA-00918:列模糊定义
此错误意味着两个表BED,WARD都具有相同的列名,因此oracle无法确定使用哪一个。
的后期输出
DESCRIBE TABLE BED;
DESCRIBE TABLE WARD;