有时候,要对数据库进行一些操作,属于体力活。比如:对表table_demo执行50条update(insert、delete)语句:
update table_demo set key_wordA=valueA1 where key_wordB = valueB1;
update table_demo set key_wordA=valueA2 where key_wordB= valueB2;
update table_demo set key_wordA=valueA3 where key_wordB = valueB3;
.
.
.
update table_demo set key_wordA=valueA50 where key_wordB = valueB50;
我刚开始的时候遇到过一个低级问题:在PL/SQl执行以上语句的时候报错:ORA-00911
解决方式:以事务方式执行SQL语句
begin
update table_demo set key_wordA=valueA1 where key_wordB = valueB1;
update table_demo set key_wordA=valueA2 where key_wordB= valueB2;
update table_demo set key_wordA=valueA3 where key_wordB = valueB3;
.
.
.
update table_demo set key_wordA=valueA50 where key_wordB = valueB50;
commit ;
exception
when others then
rollback ;
end ;
总结原因:涉及到事务,用前一种方式,单独执行一条语句事务没有提交,多以报错。后一种方式将所有语句当做一个事务一起来提交。