If you omit to indicate that Oracle Database prohibits any changes to the table or view that would produce rows that are not included in the subquery.
Because only one exception can be raised at a time in a session, it doesn’t make any sense to allow you to check for two (or more) exceptions in a single handler.
When I try to update only the missing data the non-matched data is also updated but to NULL. The reason some of your rows are getting NULLs updated is due to the subquery.
When the subquery fails to find a matching row in tbl B, the subquery returns NULL.
If you omit the WHERE clause, all records in the table will be updated!
The WHERE clause specifies which record(s) that should be updated.
You can specify this clause for tables and materialized views and for views with a single base table.