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

【赵强老师】删除表和Oracle的回收站一、Oracle的Drop Table语句 首先,我们来看一下Oracle Drop Table的语法格式。 解释一下里面的参数: schema Schema表示方案名称,这里可以理解为用户名,缺省为

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

一、Oracle的Drop Table语句

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

 

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

 

 解释一下里面的参数:

schema

代码100分

  • Schema表示方案名称,这里可以理解为用户名,缺省为当前用户下的表。比如,要删除scott用户下的emp表,drop table scott.emp
代码100分purge

  • purge可选项,如果开启了回收站(oracle 10g以后,回收站默认是开启的)功能,不带purge选项,表示删除的表放进回收站,空间不回收 。使用flashbask可以闪回该表。带purge选项,则表示将表删除,释放空间。
cascade constraints

  • 可选项,如果有其它表关联到要删除的表的主键列或唯一键列(要删除的表是主表(父表),从表(子表)有外键关联到这张表),那么,直接用drop table会报错,这时候如果想要强制删除这张表,就需要加上cascade constraints选项。

二、闪回删除:Flashback Drop

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

  • 查看当前数据库的回收站功能是否开启
代码100分conn / as sysdba
select value from v$parameter where name="recyclebin";

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

  •  执行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

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

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

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

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

  • 查看回收站 
show recyclebin;

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

  • flashback table的语法格式

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

 在执行闪回表操作期间,数据库获取闪回列表中所有指定的报表独立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;

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

  •  清空回收站
purge recyclebin;

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9164.html

(0)
上一篇 2023-02-14 12:00
下一篇 2023-02-14

相关推荐

  • Python字符串转列表

    Python字符串转列表a href=”https://beian.miit.gov.cn/”苏ICP备号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-08-29
    28
  • 实时显示Python时钟秒表,帮助管理时间

    实时显示Python时钟秒表,帮助管理时间时钟和秒表是日常生活的基本工具,让我们能够更好地管理时间。在计算机中,我们也可以使用Python编程语言来创建时钟和秒表,实现自己的时间管理工具。这篇文章将会介绍如何使用Python创建实时显示时钟和秒表的程序,为时间管理提供便利。

    2024-03-18
    78
  • Python关键词提取

    Python关键词提取Python语言是当前非常流行的编程语言,具有简单易学、代码可读性好、开源免费等优点,因此在众多开发工程师中受到了越来越多的关注和使用。本文将会介绍Python关键词提取相关的知识,帮助开发人员在编写Python程序时更好的理解Python语言特点。

    2024-09-19
    15
  • 【原创】CentOS 7 安装解压版mysql5.7「建议收藏」

    【原创】CentOS 7 安装解压版mysql5.7「建议收藏」1、将mysql压缩包解压至 /usr/local 文件夹下,将其改名为mysql#解压tar -zxf mysql-5.7.27-el7-x86_64.tar.gz -C /usr/local/#重

    2022-12-17
    126
  • 两种运行Python程序的方法

    两种运行Python程序的方法Python作为一种高级编程语言,可用于多种任务——从数据分析到人工智能,从网页开发到自动化。Python社区也因此庞大,吸引了越来越多的程序员。当你开始使用Python时,你一定会问自己:如何运行Python程序?在本文中,我们将为您介绍两种常见的运行Python程序的方法。

    2024-09-15
    25
  • mysql错误代码1130_连接虚拟机mysql报无法连接

    mysql错误代码1130_连接虚拟机mysql报无法连接新装mysql,其他机器访问时报错1130,是因为没有权限的问题,解决方案如下: 一、以权限用户root登录 mysql -u root -p 二、选择mysql库 mysql>use mysql;…

    2023-02-03
    169
  • iPad Python工程师

    iPad Python工程师Python是一门开放性强、易于学习和使用的计算机语言,而iPad则是一款集娱乐、办公和学习于一体的便携式设备。在这篇文章中,我们将探讨如何将iPad与Python结合,成为一名iPad Python工程师。

    2024-04-19
    70
  • Python对指数函数的支持

    Python对指数函数的支持指数函数是高中数学中比较重要的一类函数,在实际应用中也有很广泛的用处。Python作为一门强大且灵活的编程语言,也为我们提供了强大的指数函数支持。本文将介绍Python在指数函数方面的各种应用。

    2024-04-14
    73

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注