Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在plsql块中,如果任何语句在DML中出错,所有语句都将回滚?_Plsql - Fatal编程技术网

在plsql块中,如果任何语句在DML中出错,所有语句都将回滚?

在plsql块中,如果任何语句在DML中出错,所有语句都将回滚?,plsql,Plsql,在plsql块中,如果任何语句在DML中出错而不是自身出错,则所有语句都将回滚。 通过自动提交,单个sql语句形成一个事务,并在完成时提交/回滚。块形成语句的聚合。如果某个块的某个语句失败,则之前(块内)的任何状态仍已执行(并提交) 如果希望一组语句具有事务性,则需要使用“BEGIN[TRANSACTION]…COMMIT/ROLLBACK”,并根据需要进行适当的错误处理 否。当出现异常或错误时,您有权回滚任何特定的语句集。你可以用 SAVEPOINT savepoint_name; ROLLB

在plsql块中,如果任何语句在DML中出错而不是自身出错,则所有语句都将回滚。 通过自动提交,单个sql语句形成一个事务,并在完成时提交/回滚。块形成语句的聚合。如果某个块的某个语句失败,则之前(块内)的任何状态仍已执行(并提交)


如果希望一组语句具有事务性,则需要使用“BEGIN[TRANSACTION]…COMMIT/ROLLBACK”,并根据需要进行适当的错误处理

否。当出现异常或错误时,您有权回滚任何特定的语句集。你可以用

SAVEPOINT savepoint_name;
ROLLBACK TO savepoint_name;
在要回滚的块之前创建一个
保存点
<代码>保存点命名并标记事务处理中的当前点。保存点允许回滚事务的一部分,而不是整个事务。每个会话的活动保存点数量是无限的

例如:

BEGIN
-- other DML statements
SAVEPOINT do_insert;
   INSERT INTO emp_name VALUES (emp_id, emp_lastname, emp_salary);
EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN
      ROLLBACK TO do_insert;
      DBMS_OUTPUT.PUT_LINE('Insert has been rolled back');
END;