`

【赵强老师】删除表和Oracle的回收站

阅读更多

一、Oracle的Drop Table语句

首先,我们来看一下Oracle Drop Table的语法格式。

 

 

 解释一下里面的参数:

schema 
  • Schema表示方案名称,这里可以理解为用户名,缺省为当前用户下的表。比如,要删除scott用户下的emp表,drop table scott.emp
purge 
  • purge可选项,如果开启了回收站(oracle 10g以后,回收站默认是开启的)功能,不带purge选项,表示删除的表放进回收站,空间不回收 。使用flashbask可以闪回该表。带purge选项,则表示将表删除,释放空间。
cascade constraints 
  • 可选项,如果有其它表关联到要删除的表的主键列或唯一键列(要删除的表是主表(父表),从表(子表)有外键关联到这张表),那么,直接用drop table会报错,这时候如果想要强制删除这张表,就需要加上cascade constraints选项。

 

二、闪回删除:Flashback Drop

使用闪回删除功能,可以撤消 DROP TABLE 语句产生的影响,而不需要求助于传统时间点恢复。这是由回收站实现的,通过 DBA_RECYCLEBIN 视图可查询回收站。

  • 查看当前数据库的回收站功能是否开启

 

conn / as sysdba
select value from v$parameter where name='recyclebin';
   

 

  •  执行drop table语句
使用scott用户登录
SQL> conn scott/tiger
Connected.

查看当前用户下的表
SQL> select * from tab;

TNAME		     TABTYPE  CLUSTERID
-------------------- ------- ----------
BONUS		     TABLE
DEPT		     TABLE
EMP		     TABLE
EMP1		     TABLE
SALGRADE	     TABLE

删除一张表
SQL> drop table emp1;

Table dropped.

查看当前用户下的表
SQL> select * from tab;

TNAME		              TABTYPE  CLUSTERID
--------------------            ------- ----------
BIN$opkhRg3T0MPgVaUg          TABLE
q/kbkw==$0
BONUS		              TABLE
DEPT		              TABLE
EMP		              TABLE
SALGRADE	              TABLE

 

  

  • 通过回收站中的对象名称查询表的数据 
下面的方式是错误的:
select * from BIN$opkhRg3T0MPgVaUgq/kbkw==$0;

需要加上双引号:
select * from "BIN$opkhRg3T0MPgVaUgq/kbkw==$0"; 

   

  • 查看回收站 
show recyclebin; 

  

  • flashback table的语法格式

 在执行闪回表操作期间,数据库获取闪回列表中所有指定的报表独立DML锁。当正在恢复到之前状态时,这些锁阻止对表的任何操作。闪回表操作在单个事物中执行,不管闪回表中指定表的数量。要么所有的表都恢复到早期状态,要么都没恢复。如果任何表的闪回表操作失败,那么整个语句都失败。闪回操作完成时,表中的数据与表之前的时间点一直。但是,FLASHBACK TABLE到SCN或时间戳不保存rowid,FLASHBACK TABLE TO BEFORE DROP不能恢复引用约束。数据库不能恢复与表关联的早期结构的统计信息。表当前的索引是恢复,并反映还原点表的状态。如果该索引在还原点不存在,数据更新索引里来反映还原点表的状态。然而,如果索引是在当前时间和还原点之间被删除,是不能恢复。

  • 执行闪回删除
flashback table emp1 to before drop;

也可以通过回收站中的名字执行闪回:
flashback table “BIN$opkhRg3T0MPgVaUgq/kbkw==$0” to before drop; 

  

  •  清空回收站
purge recyclebin; 

  

分享到:
评论

相关推荐

    传智播客 赵强 Oracle课件

    赵强老师在传智播客的Oracle课程是专为IT专业人士和对数据库技术感兴趣的学员设计的一系列教学资料,旨在深入浅出地讲解Oracle的核心概念、功能以及实际操作技巧。 在赵强老师的课程中,你可以学到以下几个重要的...

    赵强老师的Oracle课件

    想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...

    从零开始oracle

    **数据定义语言(DDL)**:用于创建、修改和删除数据库对象(如表、视图等)的语言。 **数据操纵语言(DML)**:用于插入、更新和删除数据的语言。 **数据库管理程序**:负责执行上述操作,并确保数据的一致性和...

    Oracle数据库赵强视频教程【3天】

    教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强)  资源太大,传百度网盘了,链接在...

    Oracle学习笔记(传智播客 赵强)

    在Oracle数据库的学习中,SQL优化是一项至关重要的技能,因为它直接影响到数据库的性能和查询效率。以下是一些关于SQL优化的关键知识点: 1. **使用列名代替通配符(*)**:在编写SQL查询时,避免使用`*`来获取所有列...

    oracle讲义

    数据文件是实际存储数据的地方,创建、扩展和删除表空间的操作会在此讲解。 6. PL/SQL概述:11 PL-SQL概述.ppt将介绍Oracle的编程语言PL/SQL,它用于编写数据库过程、函数、触发器等。PL/SQL结合了SQL查询语言和...

    oracle课件

    Oracle使用SQL(结构化查询语言)作为其主要的数据操作语言,用户可以通过SQL进行数据查询、插入、更新和删除等操作。 课件中可能会涵盖Oracle的体系结构,这包括了服务器进程、后台进程、内存结构和磁盘结构。...

    精通JSP编程 作者赵强

    《精通JSP编程》是赵强先生的一部深入解析JSP技术的专业著作,该书针对JSP编程进行了全面且深入的讲解,旨在帮助读者掌握JSP的核心概念和技术,提升Web应用开发能力。根据提供的文件名列表,我们可以推测书籍的章节...

    精通JSP编程 作者赵强 编

    精通JSP编程 作者赵强 编 12-18节

    [1120][赵强精通JSP编程][37M]

    根据提供的文件信息,我们可以推断出这是一份与Java Server Pages (JSP)相关的学习资料介绍,特别是关于赵强编写的《精通JSP编程》这本书的相关信息。下面将基于这个理解来生成相关知识点。 ### 一、JSP基础概念 ...

    day2013-0110-webLogic配置和集群(赵强).zip

    本资料包“day2013-0110-webLogic配置和集群(赵强).zip”包含了关于WebLogic的配置与集群搭建的详细教程,旨在帮助用户深入了解WebLogic的核心功能和管理技巧。 一、WebLogic基础配置 1. 安装与启动:首先,我们...

    java代码-46 赖赵强

    在本项目中,"java代码-46 赖赵强"显然指的是一个与Java编程相关的项目或示例,由开发者赖赵强创建。这个项目的重点可能是介绍或演示特定的Java编程技术、算法或者解决某个特定问题的方法。下面将详细讨论Java编程...

    LoadRunner性能测试巧匠训练营-完整版(带目录)-赵强邹伟伟

    《LoadRunner性能测试巧匠训练营》是一本深入讲解LoadRunner性能测试的教材,由赵强和邹伟伟两位专家共同编著。该资源提供的是完整版,且无需密码即可解压阅读,对于想要学习和提升LoadRunner性能测试技能的人来说,...

    二年级数学生活中的大数赵强PPT课件.pptx

    这篇PPT课件是针对二年级学生的数学课程,主题为“生活中的大数”,旨在帮助孩子们理解和掌握大数的概念,并将其与日常生活中的实例相结合。在课件中,通过展示一些实际的例子来引入大数,例如可见的星星数量、教学...

    二年级数学生活中的大数赵强PPT学习教案.pptx

    这篇PPT学习教案主要针对二年级的学生,旨在教授他们在生活中如何理解和使用大数。课程以实际生活中的例子引入,帮助...在教学过程中,教师可能会引导学生进行估算、比较和排序,培养他们的逻辑思维和问题解决能力。

    10天掌握MongoDB

    在MongoDB的使用中,我们可以使用命令行工具进行数据操作,包括创建、读取、更新和删除(CRUD)操作。MongoDB的shell提供了强大的交互式环境,允许用户运行JavaScript脚本进行数据处理和分析。此外,用户还可以通过...

    信息存储技术的发展赵强.doc

    信息存储技术,作为信息技术的基石之一,从早期的岩画、古书,到现代的半导体、磁盘、光存储,再到先进的集群存储和虚拟化技术,其发展历程见证了人类社会的巨大变革。自20世纪开始,随着“万物皆可数”的理念推动,...

Global site tag (gtag.js) - Google Analytics