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

相关文章

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

Node Linux相关安装

下载经编译好的文件cd /optwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gztar -xvf node-v10.15.3-linux-x64.tar.gzln -s /opt/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ln -s /opt/nod

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

zookeeper相关面试题

zk的数据同步原理?zk的集群会出现脑裂的问题吗?zk的watch机制实现原理?zk是如何保证一致性的?zk的快速选举leader原理?zk的典型应用场景zk中一个客户端修改了数据之后,其他客户端能够马上获取到最新的数据吗?zk对事物的支持? 1. zk的数据同步原理? zk的数据同步过程中,通过以下三个参数来选择对应的数据同步方式 peerLastZxid:Learner服务器(Follo

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

Oracle Start With关键字

Oracle Start With关键字 前言 旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人. Start With (树查询) 问题描述: 在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下: ID, DSC, PID; 三个字段, 分别表示 当前标识的 ID(主键), DSC 当

oracle分页和mysql分页

mysql 分页 --查前5 数据select * from table_name limit 0,5 select * from table_name limit 5 --limit关键字的用法:LIMIT [offset,] rows--offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。   oracle 分页 --查前1-9