PLSQL Language Referenc-PL/SQL静态SQL-事务处理和控制-rollback语句

rollback语句

rollback语句结束当前的事务,并撤销在该事务中的任何改变。

如果犯了错误,如错误地删除一行,回滚语句可以恢复原始的数据。

因为SQL语句失败或PL/SQL语句引发异常,回滚可以让你更正错误从新开始。

DROP TABLE emp_name;

CREATE TABLE emp_name AS SELECT employee_id, last_name FROM employees;

CREATE UNIQUE INDEX empname_ix ON emp_name (employee_id);

 

DROP TABLE emp_sal;

CREATE TABLE emp_sal AS

    SELECT employee_id, salary

    FROM employees;

 

CREATE UNIQUE INDEX empsal_ix ON emp_sal (employee_id);

 

DROP TABLE emp_job;

CREATE TABLE emp_job AS

    SELECT employee_id, job_id

    FROM employees;

 

CREATE UNIQUE INDEX empjobid_ix ON emp_job (employee_id);

 

DECLARE

    emp_id        NUMBER(6);

    emp_lastname  VARCHAR2(25);

    emp_salary    NUMBER(8,2);

    emp_jobid     VARCHAR2(10);

BEGIN

    SELECT employee_id, last_name, salary, job_id

    INTO emp_id, emp_lastname, emp_salary, emp_jobid

    FROM employees

    WHERE employee_id = 120;

 

    INSERT INTO emp_name (employee_id, last_name)

    VALUES (emp_id, emp_lastname);

 

    INSERT INTO emp_sal (employee_id, salary)

    VALUES (emp_id, emp_salary);

 

    INSERT INTO emp_job (employee_id, job_id)

    VALUES (emp_id, emp_jobid);

 

EXCEPTION

    WHEN DUP_VAL_ON_INDEX THEN

        ROLLBACK;

        DBMS_OUTPUT.PUT_LINE('插入被回滚');

END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1122924/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17013648/viewspace-1122924/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值