Search notes:

Oracle SQL: Execution plan for UPDATE stement with a FROM clause

The execution plan for update statement with a from clause (version 23c and later) is not particularly spectacular.
drop table if exists tq84_dst;
drop table if exists tq84_src;

create table tq84_dst (
   id  integer,
   val number
);

create table tq84_src (
   id      integer,
   val_new number
);

explain plan for
update
  tq84_dst dst
set
   dst.val = src.val_new
from
   tq84_src src
where
   dst.id = src.id;

select * from table(dbms_xplan.display(format=>'basic'));
--
-- ----------------------------------------
-- | Id  | Operation           | Name     |
-- ----------------------------------------
-- |   0 | UPDATE STATEMENT    |          |
-- |   1 |  UPDATE             | TQ84_DST |
-- |   2 |   HASH JOIN         |          |
-- |   3 |    TABLE ACCESS FULL| TQ84_SRC |
-- |   4 |    TABLE ACCESS FULL| TQ84_DST |
-- ----------------------------------------

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1759437214, '216.73.216.42', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/databases/Oracle/SQL/DML/update/from/execution-plan(67): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78