加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

表结构修改后的flashback

发布时间:2020-12-15 06:41:15 所属栏目:百科 来源:网络整理
导读:? 昨天,听见一个网友说update一张表数据,没有加条件,表结构也改变并且已经提交,问如何闪回。我的回答的表结构改变之后就不能闪回。而有人对此存在疑问,在此做个测试。 1.?? 创建临时表,对表插入数据 ---------------------------创建一张临时表? tmp_l
?

昨天,听见一个网友说update一张表数据,没有加条件,表结构也改变并且已经提交,问如何闪回。我的回答的表结构改变之后就不能闪回。而有人对此存在疑问,在此做个测试。

1.?? 创建临时表,对表插入数据

---------------------------创建一张临时表? tmp_liuhc_1----------------------------------

SQL> CREATE TABLE TMP_LIUHC_1 (ID NUMBER,NAME VARCHAR2(10)) ;
?
Table created

---------------------------对 tmp_liuhc_1插入两条数据----------------------------------

SQL> INSERT INTO? TMP_LIUHC_1 VALUES(1,'SDK');
?
1 row inserted
SQL> INSERT INTO? TMP_LIUHC_1 VALUES (1,'SDK2');
?
1 row inserted

---------------------------查看当前时间---------------------------------------------------------
SQL> select to_char(sysdate,'YYYYMMDD HH24:MI:SS') "sysdate" from DUAL;
?
sysdate
-----------------
20111026 11:01:09

2.? 一段时间之后,对表进行修改,并查看当前时间

SQL> DELETE FROM TMP_LIUHC_1 WHERE NAME='SDK';
?
1 row deleted
SQL> UPDATE TMP_LIUHC_1 SET NAME='SDK3' WHERE NAME='SDK2';
?
1 row updated
SQL> ALTER TABLE TMP_LIUHC_1 RENAME COLUMN NAME TO MY_NAME;
?
Table altered
?
SQL> select to_char(sysdate,'YYYYMMDD HH24:MI:SS') "sysdate" from DUAL;
?
sysdate
-----------------
20111026 11:07:42

3.? 此时,对表tmp_lhc_1进行闪回查询时就会报错。

SQL> SELECT * FROM TMP_LIUHC_1 AS OF TIMESTAMP TO_TIMESTAMP('2011-10-26 11:01:09','YYYY-MM-DD HH24:MI:SS') ;
?
SELECT * FROM TMP_LIUHC_1 AS OF TIMESTAMP TO_TIMESTAMP('2011-10-26 11:01:09','YYYY-MM-DD HH24:MI:SS')
?
ORA-01466: 无法读取数据 - 表定义已更改

提示表结构已经更改,无法读取数据。

?

结论:表结构改变之后的数据是无法被闪回的

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读