Прегледи в Oracle може може да се актуализира при специфични условия. Може да е трудно и обикновено не се препоръчва.
От справочника на Oracle 10g SQL:
Бележки относно обновяемите изгледи
Обновяем изглед е този, който можете да използвате за вмъкване, актуализиране или изтриване на редове в основната таблица. Можете да създадете изглед, който да бъде по своята същност актуализиран, или можете да създадете задействане ВМЕСТО на всеки изглед, за да го направите актуализиращ.
За да научите дали и по какви начини могат да се променят колоните на изглед, който по своята същност може да се актуализира, потърсете изгледа на речника с данни USER_UPDATABLE_COLUMNS. Информацията, показвана от този изглед, има значение само за изгледи, които могат да се актуализират. За да може изгледът да бъде по своята същност актуализиран, трябва да са изпълнени следните условия:
- Всяка колона в изгледа трябва да съответства на колона от една таблица. Например, ако колона на изглед се съпоставя с изхода на клауза TABLE (невложена колекция), тогава изгледът не може по своята същност да се актуализира.
- Изгледът не трябва да съдържа нито една от следните конструкции:
- Оператор за набор
- оператор DISTINCT
- Агрегирана или аналитична функция
- клауза GROUP BY, ORDER BY, MODEL, CONNECT BY или START WITH
- Израз за колекция в списък SELECT
- Подзаявка в списък SELECT
- Подзаявка, обозначена САМО САМО ЧЕТЕНЕ
- Присъединява, с някои изключения, както е документирано в ръководството за администратор на база данни на Oracle
Освен това, ако по своята същност обновяем изглед съдържа псевдоколони или изрази, тогава не можете да актуализирате редовете на базовата таблица с израз UPDATE, който препраща към някой от тези псевдоколони или изрази.
Ако искате изгледът за присъединяване да може да се актуализира, тогава всички от следните условия трябва да са верни:
- DML изразът трябва да засяга само една таблица, лежаща в основата на присъединяването.
- За израз INSERT изгледът не трябва да се създава WITH CHECK OPTION и всички колони, в които се вмъкват стойности, трябва да идват от таблица със запазен ключ. Таблица със запазен ключ е тази, за която всеки първичен ключ или уникален ключ в основната таблица също е уникален в изгледа за присъединяване.
- За израз UPDATE всички актуализирани колони трябва да бъдат извлечени от таблица със запазен ключ. Ако изгледът е създаден С ОПЦИЯ ЗА ПРОВЕРКА, тогава колоните за свързване и колоните, взети от таблици, които са препратени повече от веднъж в изгледа, трябва да бъдат защитени от АКТУАЛИЗИРАНЕ.
- За израз DELETE, ако свързването води до повече от една таблица със запазен ключ, Oracle Database изтрива от първата таблица, посочена в клаузата FROM, независимо дали изгледът е създаден С ПРОВЕРКА ОПЦИЯ или не.