Oracle-savepoint相关

2024-05-07 14:44
文章标签 oracle 相关 savepoint

本文主要是介绍Oracle-savepoint相关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总结:在同一个会话下,如果savepoint的名称相同,新的savepoint则会覆盖旧的savepoint,在不同的会话下,savepoint的名称相同,不会相互影响。
为了避免savepoint名称相同,可以在建立savepoint名称时使用时间戳拼接

经过验证,在不同的session使用相同名称的savepoint,也不会互相影响。

session1

INSERT INTO your_table (column1) VALUES ('s1-value1');
SAVEPOINT sp1;INSERT INTO your_table (column1) VALUES ('s1-value2');
SAVEPOINT sp2;INSERT INTO your_table (column1) VALUES ('s1-value3');
SAVEPOINT sp3;--column1 in ('s1-value1', 's1-value2', 's1-value3')
SELECT * FROM your_table;ROLLBACK WORK TO sp2;--column1 in ('s1-value1', 's1-value2')
SELECT * FROM your_table;

session2

INSERT INTO your_table (column1) VALUES ('s2-value1');
SAVEPOINT sp1;INSERT INTO your_table (column1) VALUES ('s2-value2');
SAVEPOINT sp2;INSERT INTO your_table (column1) VALUES ('s2-value3');
SAVEPOINT sp3;--column1 in ('s2-value1', 's2-value2', 's2-value3')
SELECT * FROM your_table;ROLLBACK WORK TO sp1;--column1 in ('s2-value1')
SELECT * FROM your_table;

经过验证,在同一个session下,相同名称的savepoint,新的savepoint会覆盖旧的savepoint

INSERT INTO your_table (column1) VALUES ('value1');
SAVEPOINT sp1;INSERT INTO your_table (column1) VALUES ('value2');
SAVEPOINT sp1;INSERT INTO your_table (column1) VALUES ('value3');
SAVEPOINT sp2;--column1 in ('value1', 'value2', 'value3')
SELECT * FROM your_table;ROLLBACK WORK TO sp1;--column1 in ('value1', 'value2')
SELECT * FROM your_table;INSERT INTO your_table (column1) VALUES ('value4');
SAVEPOINT sp4;INSERT INTO your_table (column1) VALUES ('value5');
SAVEPOINT sp5;--column1 in ('value1', 'value2', 'value4', 'value5')
SELECT * FROM your_table;ROLLBACK WORK TO sp4;--column1 in ('value1', 'value2', 'value4')
SELECT * FROM your_table;--ORA-01086: 从未在此会话中创建保存点 'SP5' 或者该保存点无效
ROLLBACK WORK TO sp5;--column1 in ('value1', 'value2', 'value4')
SELECT * FROM your_table;

这篇关于Oracle-savepoint相关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967647

相关文章

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.