Update multiple columns in TABLE from another table (Oracle)

I would like to update multiple columns in one table based on values ​​in another.

I think I know how to write update instructions in T-SQL that does what I want (not tested below). The problem is that I am trying to translate this for an Oracle database. Does anyone know how to do the following in Oracle:

UPDATE oldauth SET AUTHUNIQUENAME=newauth.AUTHUNIQUENAME DESCRIPTION=newauth.DESCRIPTION MAPPINGAUTHNAME=newauth.MAPPINGAUTHNAME FROM (SELECT * FROM USERS1 WHERE AUTHSOURCEID=100) oldauth LEFT JOIN (SELECT * FROM USERS2 WHERE AUTHSOURCEID=200) newauth ON oldauth.AUTHUSERNAME=newauth.AUTHUSERNAME; 
+4
source share
1 answer
 MERGE INTO ( SELECT * FROM users1 WHERE AUTHSOURCEID=100 ) oldauth USING ( SELECT * FROM users2 WHERE AUTHSOURCEID=200 ) newauth ON oldauth.AUTHUSERNAME=newauth.AUTHUSERNAME WHEN MATCHED THEN UPDATE SET AUTHUNIQUENAME=newauth.AUTHUNIQUENAME, DESCRIPTION=newauth.DESCRIPTION, MAPPINGAUTHNAME=newauth.MAPPINGAUTHNAME 
+2
source

Source: https://habr.com/ru/post/1286293/


All Articles