一个新来的同事,不小心在plsql里面写了一个游标遍历有700万记录的customer表来做update操作,plsql卡死了。他用任务管理器kiss plsql进程之后,别人再也update不了customer的数据了,但是可以select数据。这个问题如何解决啊?

解决方案 »

  1.   

    1. 多等一会,系统会把事务要么提交掉,要么rollback掉的2. 利用pl/sql developer的tools菜单下的session功能把这个相应的session kill掉,基本上事务会完全rollback,不过,恐怕也要等一会
      

  2.   

    去数据库里看看,找到session,把这个session kill掉.. 估计表被锁了.
      

  3.   


    如何获取session的id值还有seral值,然后kill掉呢?
      

  4.   

    用第三方工具 pl/sql,Toad 都直观的看到,操作也简单,用SQL语句也可以...楼主用pl/sql的,方法二楼说了:pl/sql developer的tools菜单下的session,楼主去看下..界面上能看到所有session 和对应的SQL语句之类的,楼主找到你的SQL,再在session上右击,选kill session就可以了...
      

  5.   

    用第三方工具 pl/sql,Toad 都直观的看到,操作也简单,用SQL语句也可以...楼主用pl/sql的,方法二楼说了:pl/sql developer的tools菜单下的session,楼主去看下..界面上能看到所有session 和对应的SQL语句之类的,楼主找到你的SQL,再在session上右击,选kill session就可以了...
      

  6.   

    多等一下,估计你的plsql写的是一次提交的方式,耐心等待数据回滚。
      

  7.   

    进企业管理器,查找所有对该表操作的会话,全部kill掉相关会话。