`
sjjxiao
  • 浏览: 3305 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

oracle中的truncate语句

阅读更多
    最近在项目中碰到个问题,更新过期数据时事务没有回滚。前前后后仔细检查了一遍事务配置,始终没有找出问题所在。最后经过单步调试,总算找到了问题根源:使用truncate删除数据,导致事务被提交。

1、在oracle中删除数据后还能回滚是因为数据被放在了undo表空间。
2、DML = Data Manipulation Language,数据操纵语言,使用undo表空间;
   DDL = Data Definition Language,数据定义语言,不使用undo表空间。
   delete是DML语句,truncate是DDL语句,DDL语句隐式提交,即使当前事务出错,也无法回滚。
分享到:
评论

相关推荐

    oracle数据库删除数据Delete语句和Truncate语句的对比.docx

    Delete 语句和 Truncate 语句是 Oracle 数据库中两种常用的删除数据的方法,但是它们之间存在着明显的差异。 一、Delete 语句 Delete 语句是一种 DML(Data Manipulation Language)语句,用于删除表中的数据。 ...

    oracle中truncate table后的数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...

    ORACLE truncate 数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...

    Oracle_授权审计表Truncate权限.docx

    Oracle 授权审计表 Truncate 权限 Oracle 数据库中的授权审计表是指系统自动生成的审计表,用于记录数据库中各种...这些语句可以用于实现 Oracle 数据库中的授权审计表 Truncate 权限,提高数据库的安全性和可靠性。

    oracle数据库删除数据Delete语句和Truncate语句的对比.pdf

    在Oracle数据库管理中,删除数据是一项常见的操作,通常有两种主要的方式:Delete语句和Truncate语句。这两种语句在功能上相似,都是用来移除表中的数据,但在执行效率和资源消耗上存在显著差异。 一、Delete语句 ...

    oracle常用SQL语句(汇总版).docx

    在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义语句(DDL)和其他相关知识点。 一、数据控制语句(DML) 数据控制语句用于操作数据库中的数据,包括插入、删除、更新等...

    Oracle_审计表_sys.aud$_授权给用户Truncate权限.docx

    在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表`SYS.AUD$`中。为了确保系统的稳定运行和数据的安全性...

    Oracle中Truncate表的恢复方法.pdf

    Oracle 中 Truncate 表的恢复方法 Oracle 数据库中,Truncate 表是一种高效的删除表操作,但是它不会产生日志记录和回滚段空间的使用,无法使用闪回恢复。因此,需要使用 LogMiner 快速定位 Truncate 表的 SCN,并...

    oracle数据库删除数据Delete语句和Truncate语句的使用比较

    在Oracle数据库中,删除表中数据有两种主要方式:Delete语句和Truncate语句。两者在功能上相似,但有着显著的区别,适用于不同的场景。 **Delete语句** Delete语句是一种灵活的数据删除方式,它可以有条件地删除...

    ORACLE 优化sql语句提高oracle执行效率 .doc

    ORACLE 优化 SQL 语句提高 Oracle 执行效率 Oracle 是一个功能强大的关系数据库管理系统,然而,如果不正确地使用 SQL 语句,可能会导致执行效率低下。为了提高 Oracle 的执行效率,需要遵循一些最佳实践。下面是...

    Oracle给用户授权truncatetable的实现方案

    这是因为`TRUNCATE`操作在Oracle中属于`DROP`语句的一部分。执行以下命令可为用户`DWETL`授予此权限: ```sql GRANT DROP ANY TABLE TO DWETL; ``` 但这种方法存在风险,因为`DROP ANY TABLE`允许用户删除任何表,...

    Oracle数据库sql语句的基本操作详解

    在SELECT语句中,避免使用通配符'*',因为它会导致Oracle解析所有列,增加额外的处理时间。尽可能地指定需要的列名,这样能提高查询性能。 为了减少数据库的访问次数,可以调整SQL*Plus、SQL*Forms和Pro*C中的ARRAY...

    oracle查询语句大全

    根据提供的文件信息,以下是从标题、描述、标签和部分内容中提取的关键知识点,这些知识点主要围绕Oracle数据库中的查询语句和基本操作展开。 ### Oracle 查询语句大全 #### 1. 查询表信息 - **查询所有表**: - `...

    ORACLE数据库SQL语句编写优化总结

    总结以上内容,ORACLE数据库SQL语句的编写优化涉及多方面知识,包括优化器的合理选择、高效的表访问方法、共享SQL语句的使用、索引的正确配置和应用、SQL内部操作的处理以及低效SQL语句的识别与优化等。在实际操作中...

    Oracle恢复truncate删除表的数据.pdf

    在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但保留表结构。与`DELETE`语句不同,`TRUNCATE`不记录任何删除操作,因此无法通过常规的事务回滚来恢复数据。然而,Oracle提供了一些高级恢复功能,...

    oracle truncate恢复

    在Oracle数据库中,`TRUNCATE TABLE`语句用于删除表中的所有行,其执行速度远快于使用`DELETE`语句。这是因为`TRUNCATE`会删除表的数据段并重置表的高水位线(High Water Mark, HWM),而不会记录每一行的删除动作到...

    Oracle恢复truncate删除表的数据.docx

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,与`DELETE`语句不同,`TRUNCATE`不记录任何删除操作,因此它不能通过闪回查询(Flashback Query)来恢复。当你执行`TRUNCATE TABLE`后,数据...

    Oracle数据控制语句详解

    本篇文章主要关注的是 DML 和 DCL 语句在 Oracle 中的应用。 1. 数据操纵语言(DML) DML 语句主要用于数据的增、删、改操作,包括以下几种: - INSERT:向表中添加新的行。插入时可以选择指定列,如果不指定,...

Global site tag (gtag.js) - Google Analytics