ORA-00928:missing SELECT keyword 错误
在当前mysql 8.0 以上版本中 cte 支持的使用方法
WITH … SELECT …
WITH … UPDATE …
WITH … DELETE …
但在oracle中尝试使用 WITH … UPDATE … 却出现上述错误。
原因是:在Oracle中,CTE是SELECT的一部分,而不是UPDATE
update z
set mycol = (
with my_cte as (
select x, ix
from y
)
select x from my_cte where z.ix = my_cte.ix
);
以上部分内容原文来自:ORACLE中的CTE和表更新