| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 
 |  
SQL> create table t_rejets(em_key varchar2(10), em_version varchar2(10), x varchar2(10));
 
Table created.
 
SQL> create table t_rayons(fam varchar2(10), rayon varchar2(10));
 
Table created.
 
SQL> MERGE INTO t_rejets a
  2        USING T_RAYONS b
  3         ON (    a.em_key = b.fam
  4            AND a.em_version = b.rayon
  5                    )
  6         WHEN MATCHED THEN
  7             UPDATE
  8             SET EM_KEY='newUP'
  9            WHEN NOT MATCHED THEN
 10            INSERT(EM_KEY) VALUES('newIN');
       ON (    a.em_key = b.fam
               *
ERROR at line 3:
ORA-38104: Columns referenced in the ON Clause cannot be updated: "A"."EM_KEY"
 
 
SQL> MERGE INTO t_rejets a
  2        USING T_RAYONS b
  3         ON (    a.em_key = b.fam
  4            AND a.em_version = b.rayon
  5                    )
  6         WHEN MATCHED THEN
  7             UPDATE
  8             SET x='newUP'
  9            WHEN NOT MATCHED THEN
 10            INSERT(EM_KEY) VALUES('newIN');
 
0 rows merged. |