Oracle:这些查询结果不可更新,请包括 ROWID 或使用 SELECT ... FOR UPDATE 获得可更新结果。

1、报错场景

Oracle:这些查询结果不可更新,请包括 ROWID 或使用 SELECT ... FOR UPDATE 获得可更新结果。_第1张图片

  SELECT   ID,   
         KWBM,   
         KWMC,   
         CJID,   
         SJID,BMNBBH,0 AS JB , '' AS CKLX
    FROM YK_KWXX  
     WHERE 1=1
 and bmnbbh = '2202'

很多只使用过MySQL的朋友们,应该都使用过SQLYog和Navicat直接查询数据后修改。但是这在Oracle数据库的PLSQL中有所差别

2. 修改后可直接查询修改数据

  SELECT  YK_KWXX.rowid, ID,   
         KWBM,   
         KWMC,   
         CJID,   
         SJID,BMNBBH,0 AS JB , '' AS CKLX
    FROM YK_KWXX  
     WHERE 1=1
 and bmnbbh = '2202'
 for update

 添加上表名.rowid(或者表名别名),最后在where条件的末尾加上 for update就大功告成了
 

你可能感兴趣的:(oracle,数据库)