我有数据表tb_a, tb_b 其中表tb_b含有字段b1,b2,b3
现在我在同一个事务中执行以下语句设定为事务1
insert into tb_b
from (select * from tb_a where clr_date='20090101');
DECLARE cursor01 CURSOR for
select b2,b3
from tb_b
order by b2,b3;OPEN cursor01;
while (1)
{
FETCH cursor01
into :b2, :b3; update tb_b
set b1 = :a
where b2 = :b2
and b3 = :b3;
}在以上程序执行到循环update的同时,我的另一个事务2中在不断的向表tb_a中插入新的记录
我想请问各位专家:1、我的事务1是否要等到事务2全部执行完成后,才能执行;
2、事务2的运行对于我事务1中已经运行的insert语句的结果是否照成影响
现在我在同一个事务中执行以下语句设定为事务1
insert into tb_b
from (select * from tb_a where clr_date='20090101');
DECLARE cursor01 CURSOR for
select b2,b3
from tb_b
order by b2,b3;OPEN cursor01;
while (1)
{
FETCH cursor01
into :b2, :b3; update tb_b
set b1 = :a
where b2 = :b2
and b3 = :b3;
}在以上程序执行到循环update的同时,我的另一个事务2中在不断的向表tb_a中插入新的记录
我想请问各位专家:1、我的事务1是否要等到事务2全部执行完成后,才能执行;
2、事务2的运行对于我事务1中已经运行的insert语句的结果是否照成影响
解决方案 »
- sql语句 行变列的问题
- 求教一个DBlink在存储过程中遇到的问题
- oracle+VB的数据库怎么做,没oracle基础!
- Oracle Directory manager 使用疑问 Oracle10g
- 透明网关速度问题,在线等待,请多指教!!
- oracle 整列返回空 实际有数据
- 如何将SQL Server中的数据导入到Oracle数据库中
- 为什么我不能以SYSDBA身份登录数据库?
- 往taskbox.project_manage表中的date型列中插入时出现的问题
- PLsql导入表的时候 user sql plus选项是空的
- 求一ORACLE语句
- oracle中同一个数据库中如何快速切换用户
不用,一个是insert事务,一个是update事务
2、事务2的运行对于我事务1中已经运行的insert语句的结果是否照成影响
不影响;因为已经打开了游标;
事务具有隔离性,
当一个用户执行update语句时,就把当前的记录锁起来,另一个用户不能对当前记录进行修改;
参考一下,对事务的理解有帮助。
http://hi.baidu.com/jdsnhan/blog/item/351f3cf42458e0def2d385cc.html
其次,对于“事务2的运行对于我事务1中已经运行的insert语句的结果是否照成影响”,是不会有影响的,游标操作只会对当前的结果集进行,与其他的记录行无关。