oracle :在PL/SQL中select * from BS_T_FTR_FIELDSPANINFO for update 语句时查询出结果后,再点开小锁准备删除数据时会弹出一个错误框:这些查询结果不可更新,请包括ROWID或使用select ...for update获得可更新结果。
 求大家帮个忙给解决一下!

解决方案 »

  1.   

    那怎么会啊,你确认是全部执行了,确认是执行的for update? 看看你commit rollback按钮是否可用了。
      

  2.   

    那怎么会啊,你确认是全部执行了,确认是执行的for update? 看看你commit rollback按钮是否可用了。
      

  3.   

    for update 查询时事物会开着,你得提交或rollback在左上角有个按钮,然后才能对表进行删除或修改
      

  4.   

    是不是别人也在更新啊,把那个小锁打开了,或是把整张表锁住了,所以你就没办法了。我之前遇到过这情况,就是别人把表锁了。问一下你同事有没有没锁表。你看一下rollback 和commit那两个箭头是否是无效状态,然后不加for update 只select 几次,然后再for update,实在不行,就 select t.*,t.rowid from  表 t 更新试试
      

  5.   

    看一下你的操作过程吧,我觉得很可能你在PL/SQL里用鼠标或键盘选择了前面的select,没有把后面的for update选中。在PL/SQL里,即使打了很多SQL语句,也可以通过选中某一部分再点执行,来实现只运行选中部分SQL语句的目的。