【Flashback】回收站中被標記刪除的表不可以DML和DDL操作
這裡體現的是回收站中儲存的表本身操作上的侷限性。既然表被DROP掉後存放到了回收站中,自然會有一些侷限性,例如,回收站中被標記刪除的表不可以DML和DDL操作。
1.模擬表被不含有PURGE關鍵字的DROP語句刪除
1)檢視資料庫版本
sec@ora10g> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
2)確認回收站功能已經開啟
sec@ora10g> show parameter recyclebin
NAME TYPE VALUE
----------- ------- ------------
recyclebin string on
3)建立表T並初始化資料
sec@ora10g> create table t (x int);
sec@ora10g> insert into t values (1);
sec@ora10g> insert into t values (2);
sec@ora10g> commit;
sec@ora10g> select * from t;
X
----------
1
2
3)刪除T表
sec@ora10g> drop table t;
Table dropped.
2.檢視回收站中的內容
sec@ora10g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T BIN$pnchvzFWXVTgQMKQt8Boqw==$0 TABLE 2011-06-25:22:36:49
可見,剛剛被刪除的T表已經在回收站中得以體現。
3.對回收站中的表嘗試查詢
sec@ora10g> select * from "BIN$pnchvzFWXVTgQMKQt8Boqw==$0";
X
----------
1
2
查詢功能生效。
4.對回收站中的表嘗試DML操作
1)嘗試插入操作
sec@ora10g> insert into "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" values (3);
insert into "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" values (3)
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行插入操作是不可行的。
2)嘗試刪除操作
sec@ora10g> delete from "BIN$pnchvzFWXVTgQMKQt8Boqw==$0";
delete from "BIN$pnchvzFWXVTgQMKQt8Boqw==$0"
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行刪除操作是不可行的。
3)嘗試更新操作
sec@ora10g> update "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" set x=100;
update "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" set x=100
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行更新操作是不可行的。
透過增刪改等一系列DML操作測試,表明回收站中的表不可被DML操作的。
5.對回收站中的表嘗試DDL操作
以重新命名操作為例演示DDL操作。
sec@ora10g> alter table "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" rename to t;
alter table "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" rename to t
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行DDL操作是不可行的。
6.小結
存放在回收站中的表可以使用閃回技術恢復為原始表的狀態,這是它的優勢。與此同時,回收站中的資料是有其自身的限制的。本文以回收站中表不可DML和DDL操作為例進行了演示。
Good luck.
secooler
11.06.25
-- The End --
1.模擬表被不含有PURGE關鍵字的DROP語句刪除
1)檢視資料庫版本
sec@ora10g> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
2)確認回收站功能已經開啟
sec@ora10g> show parameter recyclebin
NAME TYPE VALUE
----------- ------- ------------
recyclebin string on
3)建立表T並初始化資料
sec@ora10g> create table t (x int);
sec@ora10g> insert into t values (1);
sec@ora10g> insert into t values (2);
sec@ora10g> commit;
sec@ora10g> select * from t;
X
----------
1
2
3)刪除T表
sec@ora10g> drop table t;
Table dropped.
2.檢視回收站中的內容
sec@ora10g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T BIN$pnchvzFWXVTgQMKQt8Boqw==$0 TABLE 2011-06-25:22:36:49
可見,剛剛被刪除的T表已經在回收站中得以體現。
3.對回收站中的表嘗試查詢
sec@ora10g> select * from "BIN$pnchvzFWXVTgQMKQt8Boqw==$0";
X
----------
1
2
查詢功能生效。
4.對回收站中的表嘗試DML操作
1)嘗試插入操作
sec@ora10g> insert into "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" values (3);
insert into "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" values (3)
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行插入操作是不可行的。
2)嘗試刪除操作
sec@ora10g> delete from "BIN$pnchvzFWXVTgQMKQt8Boqw==$0";
delete from "BIN$pnchvzFWXVTgQMKQt8Boqw==$0"
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行刪除操作是不可行的。
3)嘗試更新操作
sec@ora10g> update "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" set x=100;
update "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" set x=100
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行更新操作是不可行的。
透過增刪改等一系列DML操作測試,表明回收站中的表不可被DML操作的。
5.對回收站中的表嘗試DDL操作
以重新命名操作為例演示DDL操作。
sec@ora10g> alter table "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" rename to t;
alter table "BIN$pnchvzFWXVTgQMKQt8Boqw==$0" rename to t
*
ERROR at line 1:
ORA-38301: can not perform. DDL/DML over objects in Recycle Bin
說明對回收站中的表進行DDL操作是不可行的。
6.小結
存放在回收站中的表可以使用閃回技術恢復為原始表的狀態,這是它的優勢。與此同時,回收站中的資料是有其自身的限制的。本文以回收站中表不可DML和DDL操作為例進行了演示。
Good luck.
secooler
11.06.25
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-700771/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL的DDL和DML操作語法MySql
- DDL、DML、DCL、DQL相關操作
- 程式碼中被植入了惡意刪除操作,太狠了!
- 【Flashback】Flashback Drop閃回刪除功能實驗
- SQL基礎——DML(插入、修改和刪除)SQL
- MsSql 資料庫使用sqlplus建立DDL和DML操作方法SQL資料庫
- 刪使用者刪表空間的操作還能flashback回來嗎?
- MsSql資料庫使用SQL plus建立DDL和DML操作方法SQL資料庫
- MySQL DDL操作表MySql
- CAD標記、刪除標記、放大標記、縮小標記
- Flashback Drop閃回刪除功能實踐
- Begin end程式碼段裡面有DDL和DML,如果DDL成功了而DML失敗了,則DDL的程式碼也會回滾
- 04 MySQL 表的基本操作-DDLMySql
- MYSQL學習筆記4: DML資料操作(增刪改)MySql筆記
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- DML(Data Manipulation Language、資料操作語言),用於新增、刪除、更新和查詢資料庫記資料庫
- 回收站刪除的檔案怎麼恢復?
- 單表的更新UPDATE和刪除記錄DELETE(二十六)delete
- Python連線es筆記四之建立和刪除操作Python筆記
- WIN10如何在桌面刪除回收站 win10電腦怎麼刪除回收站圖示Win10
- 回收站的東西怎麼恢復?回收站刪除的檔案恢復教程
- 線性表的相關操作-初始化、增添、刪除
- win10如何去掉桌面回收站_win10刪除桌面回收站的方法Win10
- flowable的查詢操作和刪除操作
- 回收站刪除的檔案恢復,保姆級教學
- 基於回收站臨時刪除塊裝置
- 資料庫:淺談DML、DDL、DCL的區別資料庫
- Laravel 軟刪除操作Laravel
- 修改刪除表
- 簡單介紹mysql如何刪除資料表和關聯的資料表刪除詳情MySql
- ORACLE刪除-表分割槽和資料Oracle
- [20180724]Flashback query和子游標共享.txt
- c/c++ 標準順序容器 容器的訪問,刪除 操作C++
- Vue+Element+JS動態生成form表單實現新增和刪除操作VueJSORM
- 面試題: 資料庫:delete和trancate刪除表記錄的區別面試題資料庫delete
- 記錄一次 Online DDL 操作
- mysql支援跨表delete刪除多表記錄MySqldelete
- win10 回收站刪除的檔案怎麼恢復Win10
- win10這麼設定不進入回收站_win10檔案直接刪除不進入回收站如何操作Win10