多线程程序。线程没有同步处理。,每次有20至30个线程,每个线程都去调用一个存储过程。该存储过程对表A进行插入,更改操作,有数据更新,没数据插入。表A的主键为ID和月份两个列。我想问的是:线程A和线程B线程C同时调用这个存储过程,对这张表操作。现在有这样的情况,线程A,B,C操作的数据都是相同ID相同月份,线程A调用存储过程,线程A的存储过程查询A表没有数据,于是插入。在查询和插入这个时间段其他线程进行了插入,结果线程A的存储过程插入失败,有没有这种可能?,oracle遇到这种情况怎样处理?
解决方案 »
- 请教一个sql语句,求解答----------------------------------------------
- 求鞭笞,求指点,主表 子表 信息查询!!!
- java web程序员(2012届毕业生),希望加强下oracle学习。推荐下资料
- merge partition问题
- Oracle Transaction 控制
- oracle10G 如何提高用户权限
- ADO.net 中的Oracle 连接,在线等....
- delete 中文问题?
- [求助]C#中用OracleClient连接Oracle时,连接字符串怎么写?
- person_list_ := person_list_ || person_information.name|| ' <' || person_information.identity|| '>' || field_separator_;这句话是
- oracle与其他数据库数据同步复制的实现
- 路过的帮个忙看看,是怎么回事?
select * from 表A for update;
等过程完了后再
commit;
这样
多个进程就会在这里进行排队了。
select * from 表A for update;
等过程完了后再
commit;
这样
多个进程就会在这里进行排队了。 这个说法
楼主真是多虑了!多个存储过程同时对一张表进行操作时,oracle自己会让处理的!每个存储过程中最后一定要提交事务(commit)即可,其它交给oracle自动处理!
而是涉及到了业务逻辑控制