sql >> Database >  >> RDS >> Oracle

Een deelnameweergave bijwerken zonder een niet-sleutelbewaarde fout te krijgen

U kunt column_from_table2 niet updaten in deze weergave kan het niet worden bijgewerkt.
Als u wilt controleren of een kolom kan worden bijgewerkt of niet, voert u deze zoekopdracht uit:

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   

Waarom kan het niet worden bijgewerkt? Het is een grote vraag.
Er is een heel hoofdstuk in de documentatie over dit onderwerp:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/views001.htm#i1006234
vind "Weergaven bijwerken die Outer Joins bevatten", er is een voorbeeld van een weergave met outer join en gedetailleerde uitleg welke kolommen in deze weergave wel en niet kunnen worden bijgewerkt en waarom.



  1. Hoe de batchbewerking uit te voeren met pl/sql

  2. Aan de slag met ProxySQL - Zelfstudie MySQL &MariaDB Load Balancing

  3. Is java.sql.Timestamp tijdzone specifiek?

  4. Verwijder aanhalingstekens en komma's uit een tekenreeks in MySQL