天天看點

oracle 11g cte update ORA-00928:missing SELECT keyword 錯誤ORA-00928:missing SELECT keyword 錯誤

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