У меня есть вопрос относительно просмотров. В оболочке ореха мне нужно обновить поле через представление.Можно ли обновить простой вид?
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
В) имеют доступ пользователя C вид, а затем назначить разрешения для пользователя с точки зрения C и имеют тестового пользователя вид. Запрос только для некоторых полей. Обновите год автомобиля и укажите ответ в своем представлении.
GRANT ALL ON carview TO C;
Пользователь C может открыть представление и сделать выбор на нем, но я не знаю, как обновить представление с пользователем C. (если это вообще возможно)
Я бы придраться с определением «простой точки зрения» Вот. В моей книге простой вид представляет собой представление по одной таблице. Когда мы вводим выбор или агрегации, все не так просто. – APC
Ваш взгляд может быть [неотъемлемо обновляемым] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_8004.htm#SQLRF54782). Попробуйте 'update carview set cyear = 2000;', что происходит? Проверьте 'USER_UPDATABLE_COLUMNS', а также проверьте все определения таблиц, чтобы понять, почему это или невозможно. Вы можете использовать «левое соединение» для включения всех автомобилей. И вы должны принять некоторые ответы на свои предыдущие вопросы. –