假如,我在pl/sql developer里面执行select * from ttt for update
如果刚好此时我的客户端程序也要修改此表的某条记录(相当于pl/sql developer中新开了窗口执行select * from ttt for update),此时客户端程序就是会无限等待,因为ttt表里所有的记录都被锁定了(默认是行锁),这样就造成了界面死掉,给客户极不友好的感觉,
能不能修改oracle系统参数,让第二条执行的select * from ttt for update等待有限秒数或者立即返回,抛出一个异常,那样我的客户端就不会死掉了,而是收到一条"此表正被锁定,无法进行操作!"不要告诉我加select后加nowait,那不是我想要的答案,因为客户端程序是用控件完成数据操作,不会在select语句后加nowait的.

解决方案 »

  1.   

    您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
    您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
    http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选终选的30位数据库工程师将与您展开积极的互动。他们会为您的问题提供满意的答案,此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
    http://www.bestdba.cn/match_discussion3.aspx?pointid=579&pointid2=1&pointid3=5&pcount=stc
    非常感谢您对本次活动的支持!
      

  2.   


    --创建一个profile,限制为最到连接时间为5分
    create profile limitedProfile limit connect_time 5;--为用户指定prifile
    alter user user_Name profile limitedProfile