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和表更新