Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализиране на изглед за присъединяване без получаване на грешка без запазване на ключ

Не можете да актуализирате column_from_table2 в този изглед не може да се актуализира.
За да проверите дали дадена колона може да се актуализира или не, изпълнете тази заявка:

SELECT * FROM USER_UPDATABLE_COLUMNS
WHERE table_name = 'MY_DATAVIEW';

OWNER                          TABLE_NAME                     COLUMN_NAME                    UPDATABLE INSERTABLE DELETABLE
------------------------------ ------------------------------ ------------------------------ --------- ---------- ---------
TEST                           MY_DATAVIEW                    KEY1                           YES       YES        YES       
TEST                           MY_DATAVIEW                    KEY2                           YES       YES        YES       
TEST                           MY_DATAVIEW                    COLUMN_FROM_TABLE1             YES       YES        YES       
TEST                           MY_DATAVIEW                    COLUMN_FROM_TABLE2             NO        NO         NO   

Защо не може да се актуализира? Това е голям въпрос.
Има цяла глава в документацията по тази тема:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/views001.htm#i1006234
намерете „Актуализиране на изгледи, които включват външни съединения“, има пример за изглед с външно съединение и подробно обяснение кои колони в този изглед могат и не могат да бъдат актуализирани и защо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Странно поведение с вложени курсори на оракул

  2. ANSI SQL стандарт за ключова дума ORACLE MINUS

  3. Ако данните съществуват, в противен случай... използвайки Oracle SQL?

  4. JDBC Metada извлича информация за ограничения

  5. Грешка при добавяне на режим на готовност