您的位置:首页 > 数据库

PL/SQL中savepoint和rollback的用法总结

2010-07-23 14:41 225 查看
先说一下这两个命令的用法格式:

--起一个名字为A的savepoion
savepoint A(这个A是savepoint的名字)
--跳转到savepoint A处
rollback to A
一旦执行了rollback那么savepoint的操作都将撤消,当然最后一定执行一次commit,否则所有的操作都是在缓存中进行的,不会真正的写入数据库中,写个例子

DECLARE
v_number number;
BEGIN
v_number := 1;
insert into DEPT values(deptno_seq.nextval,v_number,'');
savepoint A;
insert into DEPT values(deptno_seq.nextval,v_number+1,'');
savepoint B;
insert into DEPT values(deptno_seq.nextval,v_number+2,'');
savepoint C;
rollback to A;
--如果这行不加,那么数据并没有写入到数据库中,只是写到了缓存中,直接查询数据库是没有插入的值的
commit;
END;

deptno_seq.nextval
这个是事先在数据中生成好的序列,代码为

CREATE SEQUENCE "SUCRE"."DEPTNO_SEQ" MINVALUE 1 MAXVALUE 1.00000000000000E+27 INCREMENT BY 10 START WITH 201 CACHE 20 NOORDER NOCYCLE ;本文出自 “博客即日起停止更新” 博客,请务必保留此出处http://sucre.blog.51cto.com/1084905/357072
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: