我試圖創建包含列HospitalCode
,WardNo
,BedNo
,DateLastServiced
的視圖,並將這些列命名爲Hospital,Ward,Bed and Last Serviced。在Oracle中創建視圖時出錯
CREATE VIEW HospitalCode, WardNo, BedNo, DateLastServiced
AS SELECT * FROM BED, WARD
我得到這個錯誤,說我錯過了一個關鍵字。任何人都可以幫忙嗎?
我試圖創建包含列HospitalCode
,WardNo
,BedNo
,DateLastServiced
的視圖,並將這些列命名爲Hospital,Ward,Bed and Last Serviced。在Oracle中創建視圖時出錯
CREATE VIEW HospitalCode, WardNo, BedNo, DateLastServiced
AS SELECT * FROM BED, WARD
我得到這個錯誤,說我錯過了一個關鍵字。任何人都可以幫忙嗎?
你錯過了名視圖試試這個:
CREATE VIEW MyView1 AS SELECT HospitalCode, WardNo, BedNo, DateLastServiced
FROM BED, WARD
而且我不知道SELECT,因爲我沒有你的表結構。
UPDATE
ORA-00918: column ambiguously defined
此錯誤意味着,這兩個表的牀,具有WARD相同的列名,所以Oracle不能確定要使用哪一個兩個表。
的
DESCRIBE TABLE BED;
DESCRIBE TABLE WARD;
後輸出你在你的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
我已經改成了這個基於從該表中,但現在我得到的錯誤ORA-00907的列上:缺少右括號 – jeremy 2012-08-05 09:12:12
CREATE VIEW MyView1 ( 醫院, 病房, 牀 Last_Serviced ) AS SELECT病房.HospitalCode, bed.WardNo, bed.BedNo, bed.DateLastServiced FROM BED JOIN WARD on bed.bedno = ward.bedno; – jeremy 2012-08-05 09:12:59
@jeremy:你在'Bed'和'Last_Serviced'之間缺少一個逗號。 – eggyal 2012-08-05 09:13:24
哪裏視圖名稱? – Mat 2012-08-05 08:51:43
BED和WARD之間沒有聯接? – 2012-08-05 08:55:03
在發佈所有語法錯誤之前,您是否至少嘗試閱讀手冊? – 2012-08-05 09:04:53