恳请大家帮我分析一下,谢谢。
我现在有多个线程,同时访问一个数据表。每个线程的任务都是一样的,就是每次取一条记录进行分析,然后将这条记录删掉。为了防止多个线程同时访问同一条记录,我的SQL是这么写的:
select x, xx, xxx from t where ROWNUM = 1 for FOR UPDATE NOWAIT。
我的问题是,如果当一个线程访问一条正在被其他线程处理的记录时,应该是报错的,如何才能让线程自动知道哪条记录没有被锁定?从而可以提高效率。
环境是weblogic + oracle