0
我有一個關於意見的問題。在堅果殼中,我必須通過視圖更新字段。是否可以更新簡單視圖?
A)創建一個視圖,顯示每輛車的所有汽車領域和選項數據。確保所有的汽車都會出現。
create view carview as
select c.serial, c.cname, c.make, c.model, c.cyear, c.color, c.trim,
c.enginetype, c.purchinv, c.purchdate, c.purchfrom, c.purchcost, c.freightcost,
c.listprice, o.ocode, o.odesc, o.ocost, o.olist
from car c
join baseoption b
on c.serial = b.serial
join options o
on b.ocode = o.ocode
B)讓用戶C訪問視圖,然後爲視圖分配權限給用戶C,讓用戶測試視圖。僅查詢一些字段。更新一輛汽車的年份並在您的提交中包含回覆。
GRANT ALL ON carview TO C;
用戶C可以訪問視圖,並做了選擇就可以了,但我不知道如何更新與用戶C的觀點(如果這甚至有可能)
我要和你「簡單視圖」的定義狡辯這裏。在我的書中,一個簡單的視圖就是一張表的視圖。一旦我們介紹選擇或聚合,事情並不簡單。 – APC 2013-03-08 21:07:02
您的看法可能[內在可更新](http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_8004.htm#SQLRF54782)。嘗試'更新carview設置cyear = 2000;',會發生什麼?檢查'USER_UPDATABLE_COLUMNS',並檢查所有的表定義,看看它爲什麼是不可能的。您可能希望使用「左連接」來包含所有車輛。你應該接受你之前的問題的一些答案。 – 2013-03-08 21:22:20