1.insert into TabA
select col1,col2,col3
from TabB
where...2.declare mycursor cursor for
select col1,col2,col3
from TabB
where..
open cursor
fetch mycursor into val1,val2,val3
while @@sqlstatus=0 do
begin
insert into TabA values(val1,val2,val3)
fetch mycursor into val1,val2,val3
end我不知道这两种写法有什么区别,那个用的更多一点在事务中。
1方法如果有一条插入失败,@@error的值是否不为0,而且先前插入的
记录行全部回滚掉。
2方法如果某一条记录插入失败的话,其他已经插入的记录是否也自动回滚,
而且在循环结束后@@error的值是否也不为0?
这个问题困扰我很久了,希望高手能够指点!!
select col1,col2,col3
from TabB
where...2.declare mycursor cursor for
select col1,col2,col3
from TabB
where..
open cursor
fetch mycursor into val1,val2,val3
while @@sqlstatus=0 do
begin
insert into TabA values(val1,val2,val3)
fetch mycursor into val1,val2,val3
end我不知道这两种写法有什么区别,那个用的更多一点在事务中。
1方法如果有一条插入失败,@@error的值是否不为0,而且先前插入的
记录行全部回滚掉。
2方法如果某一条记录插入失败的话,其他已经插入的记录是否也自动回滚,
而且在循环结束后@@error的值是否也不为0?
这个问题困扰我很久了,希望高手能够指点!!
解决方案 »
- Oracle存储进程
- oralce 9i 文本转换成数字 “无效数字”错误
- sql loader 调用函数
- 我的pl/sql中查询的结果是乱码,单用sqlplus查询是正常中文,不知道怎么回事?忘高手指教!
- 哪儿有数据库操作时各种错误代号的介绍呀,详细一点的
- Oracle里面有没有办法判断子串?
- 100分求一句SQL
- 考计算机系的研究生有用吗?
- 感谢以下朋友:bzszp(SongZip), blue__star(蓝色沸点) ,mimimi(开心果) , jlandzpa(ORA-00600),barrytyh(海阔天空)
- oracle存储过程 带普通参数 返回数据集
- 关于编写存储过程过程中要遵循的原则!!
- 连接ORACLE数据
后一种方法,一般适于要对取出的记录进行处理,然后再执行插入,否则的话,就效率而言就是不合算的。
所以第二种方法才不会回滚已插入数据