【赵渝强老师】删除表和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的回收站的更多相关文章
- spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...
- Oracle 创建/删除 表空间、用户、授权
首先以DBA连接到数据库:sqlplus / as sysdba; --创建表空间 create tablespace test_tablespace datafile 'D:\developer\o ...
- oracle创建表空间、创建用户、授权、夺权、删除用户、删除表空间
表空间定义 表空间是为了统一ORACLE物理和逻辑上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数据文件构成的(至少1对1,可以1对多),从逻辑上来说一个表空间是由具体的一个 ...
- oracle学习 六 删除表空间,数据文件的语句以及导入导出dmp文件的方法(持续更新中)
要想删除表空间就要先删除数据文件 例如这个例子 CREATE TABLESPACE STHSGIMGDB_SPACE11 DATAFILE 'D:\ORACLEDATABASE\JinHuaDataB ...
- Linux环境下oracle创建和删除表空间及用户
#su - oracle $ sqlplus /nolog SQL> connect / as sysdba --//创建临时表空间 create temporary tablespace te ...
- oracle删除表语句
删除表(记录和结构)的语名delete ———— truncate ———— drop DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意 ...
- Oracle删除表、字段之前判断表、字段是否存在
这篇文章主要介绍了Oracle删除表.字段之前判断表.字段是否存在的相关资料,需要的朋友可以参考下 在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ...
- oracle删除表的方法
1. 删除oracle表中的所有数据而不删除表: 语法: TRUNCATE TABLE table_name; 使用这条语句只是删除表中的全部数据,不是删除表,这种方式也叫做截断表,这种方式比使用de ...
- oracle中的rowid--伪列-删除表中的重复内容-实用
1.rowid是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行. 2.rowid是存储在索引中的一组既定的值(当行确定后).我们可以像表中普通的列一样将它选出来. 3 ...
- oracle 数据库删除表或表数据恢复问题
oracle恢复误删除的数据:使用闪回,ORACLE 10G及以上版本! 1. flashback table table_name to timestamp systimestamp-1; (sys ...
随机推荐
- DASCTF 2023六月挑战赛|二进制专项 PWN (下)
DASCTF 2023六月挑战赛|二进制专项 PWN (下) 1.can_you_find_me 检查保护 意料之中 64位ida逆向 只有add,和del功能不能show 先看add吧 最多申请10 ...
- 【WPF】Command 的一些使用方案
Command,即命令,具体而言,指的是实现了 ICommand 接口的对象.此接口要求实现者包含这些成员: 1.CanExecute 方法:确定该命令是否可以执行,若可,返回 true:若不可,返回 ...
- 【Vue】Re19 Promise
一.概述 Promise是异步编程的解决方案 异步事件的处理: 封装的异步请求函数不能立即获取结果, 通常会传入另外一个函数,在请求成功的时候将数据通过传入的函数回调出去 如果只是一个简单的请求,那么 ...
- NVIDIA黃仁勳給年輕人的忠告 —— 持续强化学习算法会是未来10年的技术变革点
地址: https://www.youtube.com/watch?v=ER4xNhSVJ2c 强化学习,已经不是什么稀奇的概念了,强化学习算法是大语言模型.自动驾驶.人形机器人的核心算法,但是现有的 ...
- signal-slot:python版本的多进程通信的信号与槽机制(编程模式)的库(library) —— 强化学习ppo算法库sample-factory的多进程包装器,实现类似Qt的多进程编程模式(信号与槽机制) —— python3.12版本下成功通过测试
什么是 Qt signal-slot库项目地址: https://github.com/alex-petrenko/signal-slot 该库实现的主要原理: 要注意这个项目的library只是对原 ...
- 如何使用H100打游戏——这是史上最快GPU!我们测了四张H100!价值120万元!
资料: 这是史上最快GPU!我们测了四张H100!价值120万元! 对显卡H100的测评视频.
- 读《PyTorch + NumPy这么做会降低模型准确率,这是bug还是预期功能?》
看了文章: [转载] 浅谈PyTorch的可重复性问题(如何使实验结果可复现) 然后,转到: PyTorch + NumPy这么做会降低模型准确率,这是bug还是预期功能? 发现了在pytorch中的 ...
- 与LLMs进行在IDE中直接、无需提示的交互是工具构建者探索的一个有希望的未来方向
这个观点在卡内基梅隆大学与谷歌研究人员合作文章 <Using an LLM to Help With Code Understanding> 中提出. 论文地址:https://dl.ac ...
- Linux字节对齐的那些事
最近一口君在做一个项目,遇到一个问题,ARM上的threadx在与DSP通信采用消息队列的方式传递消息(最终实现原理是中断+共享内存的方式),在实际操作过程中发现threadx总是crash,于是经过 ...
- manim边学边做--圆弧形
圆弧形可以算是一种特殊的圆形,它是圆形的一部分.manim中,单独为圆弧形状封装了几个模块: Arc:通用的圆弧,根据半径和角度来绘制圆弧 ArcBetweenPoints:根据两个点和角度来绘制圆弧 ...