【赵强老师】删除表和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;

  

原文地址:https://www.cnblogs.com/collen7788/p/12641672.html

时间: 2024-10-10 05:06:20

【赵强老师】删除表和Oracle的回收站的相关文章

spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

  1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建表的权限,(2):有表空间 SQL> desc t4; 名称                                      是否为空? 类型 ----------------------------------------- -------- ------------------------

Oracle中的游标(光标)--来自Oracle赵强老师

 表.select语句.游标:返回结果都能是一个集合. 注意:游标的结果是一个集合. --查询并打印员工的姓名和薪水 set serveroutput on /* 光标: 1. 光标的属性: %isopen %rowcount(返回的行数) %notfound %found 2. 默认情况下,一次性打开300个光标 SQL> show parameter cursor NAME TYPE VALUE ------------------------------------ ---------

(赵强老师原创)搭建CDH实验环境,三个节点的安装配置

赵强老师简介 ------------------------------------------------------- 清华大学软件工程专业毕业.现就职于Oracle(中国)有限公司高级技术顾问,在Oracle公司服务已超过10年.业界知名的Oracle数据库专家和大数据专家,精通Oracle数据库.大数据.Weblogic中间件和Java技术.同时,受聘于多家知名IT培训机构,线下培训的学员已超过万人. 赵强老师在线视频课程主页 http://edu.51cto.com/lecturer

赵强老师:免费实战微课系列课程

赵强老师实战微课系列课程 Oracle数据库.大数据.Weblogic中间件 永久免费!!! (*)赵强老师实战微课之一:在Oracle SQL*PLUS中修改SQL语句 http://edu.51cto.com/course/course_id-9016.html (*)赵强老师实战微课之二:搭建Hadoop的Eclipse开发环境 http://edu.51cto.com/course/course_id-9017.html (*)赵强老师实战微课之三:使用Weblogic Console生

Hadoop大数据赵强老师免费公开课招募啦~~~~

Hadoop大数据公开课招募啦~~~ 赵强老师免费公开课 l  时间:2017年03月14号晚19:30-21:00 n  19:30-20:30讲述Hadoop的背景知识,包括:大数据背景.数据仓库.Hadoop的思想来源(Google的三大思想) n  20:30-21:00答疑 l  讲师简介 13年IT行业从业经历,清华大学计算机硕士,曾在BEA.甲骨文.摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大数据.数据库.中间件技术和Java技术. 讲师详情链接:http:

【赵强老师】Oracle RAC集群的概念

一.什么是Oracle RAC(Real Application Cluster)? Oracle RAC 是一个具有共享缓存架构的集群数据库,它克服了传统的无共享方法和共享磁盘方法的限制,为您的所有业务应用提供了一种具有高度可扩展性和可用性的数据库解决方案.Oracle RAC 是 Oracle 私有云架构的关键组成部分. Oracle Real Application Clusters 可以消除数据库服务器单点故障问题,从而为客户提供优秀的数据库可用性.在集群服务器环境中,数据库本身在服务器

赵强老师免费公开课第三季:大数据实时计算

大数据实时计算公开课课程简介 课程简介 实时处理系统,也称为流式处理系统,是目前大数据领域中非常热门的处理技术.相对于传统的离线数据处理系统,实时系统能够更加准确的得到处理的结果数据.目前实时处理系统有两大主流框架:一种是基于Apache Kafka和Apache Storm的框架:另一种是基于Spark Streaming的处理框架. 本次公开课将基于Apache Kafka和Apache Storm的框架,详细介绍这两部分的内容:第一部分将介绍大数据的消息系统:第二部分将介绍大数据的实时处理

【赵强老师】利用数据库触发器实现数据的同步

一.什么是触发器 数据库触发器是一个与表相关联的,存储的PL/SQL 语句.每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列. 触发器的应用场景如下: 复杂的安全性检查 数据的确认 数据库审计 数据的备份和审计 二.创建Oracle触发器的语法 CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER } {INSERT | DELETE | UPDATE

【赵强老师】大数据分析引擎:Presto

一.什么是Presto? 背景知识:Hive的缺点和Presto的背景 Hive使用MapReduce作为底层计算框架,是专为批处理设计的.但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求.Presto是一个分布式SQL查询引擎,它被设计为用来专门进行高速.实时的数据分析.它支持标准的ANSI SQL,包括复杂查询.聚合(aggregation).连接(join)和窗口函数(window functions).这其中有两点就值得探究,首先