oracle中关于删除表purge语句和闪回语句的基本使用

语法: drop table ... purge;

例子:drop table test purge;

purge是直接删除表,不保留到回收站,10G开始默认drop表式改名移动到回收站;

闪回(flashback)语句:

1、能在一个语句中把表恢复到指定的时间点;

2、恢复表数据连同索引与约束信息;

3、能返回表及其内容到指定时间点或系统变更号(SCN);

4、修复表的误操作

闪回简单示例:

SQL> drop table emp2;

Table dropped

SQL> select original_name,operation,droptime from recyclebin;

ORIGINAL_NAME                    OPERATION DROPTIME

-------------------------------- --------- -------------------

EMP2                             DROP      2012-11-16:10:49:13

SQL> flashback table emp2 to before drop;

Done

SQL> select count(*) from emp2;

COUNT(*)

----------

107

--恢复误删表数据示例:

SQL>  select sysdate 时间, timestamp_to_scn(sysdate) SCN from dual;

时间               SCN

----------- ----------

2012/11/16     1230043

SQL> delete from emp2;

107 rows deleted

SQL> commit;

Commit complete

SQL> select count(*) from emp2;

COUNT(*)

----------

0

SQL> flashback table emp2 to scn 1230043;

flashback table emp2 to scn 1230043

ORA-08189: cannot flashback the table because row movement is not enabled

SQL> alter table emp2 enable row movement;

Table altered

SQL> flashback table emp2 to scn 1230043;

Done

SQL> select count(*) from emp2;

COUNT(*)

----------

107

时间: 2024-11-05 16:05:27

oracle中关于删除表purge语句和闪回语句的基本使用的相关文章

oracle学习 六 删除表空间,数据文件的语句以及导入导出dmp文件的方法(持续更新中)

要想删除表空间就要先删除数据文件 例如这个例子 CREATE TABLESPACE STHSGIMGDB_SPACE11 DATAFILE 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_01' SIZE 1M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED, 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_02' SIZE 1M AUTOEXTE

恢复oracle中误删除的表

查看回收站中表 select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin; 恢复表 SQL>flashback table ZCM002;或SQL>flashback table "BIN$A8uJNocaGVzgUwwrCgpDBg==$0" to before drop; 注:必须9i或10g以上版本支持,flashback无法恢复全文

oracle中的dual表详解

oracle中的dual表详解 1.DUAL表的用途 Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中 --查看当前连接用户 SQL> select user from dual; USER ------------------------------ SYSTEM --查看当前日期.时间 SQL> select sysdate from dual; SYSDATE ----------- 2007-1-24 1 SQL> sele

Oracle中存储过程传入表名学习

Oracle中存储过程传入表名: 一.动态清除该表的数据 create or replace procedure p_deletetable(i_tableName in varchar2) as --定义变量存放动态的SQL语句 dynamic_drop_sql varchar2(500); begin dynamic_drop_sql :=  'DELETE  FROM ' || i_tableName ; --执行动态SQL语句 execute immediate dynamic_drop

oracle中导出导入表以及数据

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用.执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在oracle 8i 中安装目录\ora81\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出.oracl

Oracle 11g R2 Rman、数据泵、闪回备份与恢复

Oracle 11g R2 Rman备份备份与恢复的定义及分类 备份的定义及分类: 备份就是把数据库复制到转储设备的过程.其中,转储设备是指用于放置数据库副本的磁带或磁盘.通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储.备份是一份数据副本,从不同的角度分类如下: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份. 物理备份:对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份.物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),前者是在

如何恢复oracle中已删除的表

在9i中Oracle引入了flashback的概念,可以将数据返回到某个时间点,但对于诸如drop/truncate等DDL语句却尚不支持.进入Oracle10g,这一缺陷得到了弥补.可以将丢失掉的表,通过flashback命令直接找回.非常简单且易用. 1.首先,可以查看当前schema中的表: SQL> select * from tab; TNAME                    TABTYPE  CLUSTERID ------------------------ -------

oracle 增加修改删除表字段,添加修改表、以及表中字段的备注

添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],-.); 删除字段的语法:alter table tablename drop (column); 添加.修改.删除多列的话,用逗号隔开. 举例: 使用al

在Oracle中数据库、表空间、表之间的关系

在oracle中,表空间是存储概念上的,建立表空间需要有对应的数据文件,数据文件建立好之后直接会把一定的磁盘空间分配给它,这样可以对数据库的存储空间进行有效的管理.然后在建表的时候指定对应的表空间,该表的数据就会都存在表空间对应的数据文件上,和Mysql那种每个表一个文件的方式比起来,存储的可控性更强. oracle和mysql不同,不存在mysql中那种数据库的概念,而是实例的概念,当然,也可以在实例里建立不同的user来区分,每个user对应的表都是相对独立的,比如两个user下可以分别建同