您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么刪除表和Oracle的回收站”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
首先,我們來(lái)看一下Oracle Drop Table的語(yǔ)法格式。
解釋一下里面的參數(shù):
1 | schema |
Schema表示方案名稱,這里可以理解為用戶名,缺省為當(dāng)前用戶下的表。比如,要?jiǎng)h除scott用戶下的emp表,drop table scott.emp
1 | purge |
purge可選項(xiàng),如果開(kāi)啟了回收站(oracle 10g以后,回收站默認(rèn)是開(kāi)啟的)功能,不帶purge選項(xiàng),表示刪除的表放進(jìn)回收站,空間不回收 。使用flashbask可以閃回該表。帶purge選項(xiàng),則表示將表刪除,釋放空間。
1 | cascade constraints |
可選項(xiàng),如果有其它表關(guān)聯(lián)到要?jiǎng)h除的表的主鍵列或唯一鍵列(要?jiǎng)h除的表是主表(父表),從表(子表)有外鍵關(guān)聯(lián)到這張表),那么,直接用drop table會(huì)報(bào)錯(cuò),這時(shí)候如果想要強(qiáng)制刪除這張表,就需要加上cascade constraints選項(xiàng)。
使用閃回刪除功能,可以撤消 DROP TABLE 語(yǔ)句產(chǎn)生的影響,而不需要求助于傳統(tǒng)時(shí)間點(diǎn)恢復(fù)。這是由回收站實(shí)現(xiàn)的,通過(guò) DBA_RECYCLEBIN 視圖可查詢回收站。
查看當(dāng)前數(shù)據(jù)庫(kù)的回收站功能是否開(kāi)啟
1 2 | conn / as sysdba select value from v $parameter where name= 'recyclebin' ; |
執(zhí)行drop table語(yǔ)句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 使用scott用戶登錄 SQL> conn scott /tiger Connected. 查看當(dāng)前用戶下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERID -------------------- ------- ---------- BONUS TABLE DEPT TABLE EMP TABLE EMP1 TABLE SALGRADE TABLE 刪除一張表 SQL> drop table emp1; Table dropped. 查看當(dāng)前用戶下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERID -------------------- ------- ---------- BIN$opkhRg3T0MPgVaUg TABLE q /kbkw ==$0 BONUS TABLE DEPT TABLE EMP TABLE SALGRADE TABLE |
通過(guò)回收站中的對(duì)象名稱查詢表的數(shù)據(jù)
1 2 3 4 5 | 下面的方式是錯(cuò)誤的: select * from BIN$opkhRg3T0MPgVaUgq /kbkw ==$0; 需要加上雙引號(hào): select * from "BIN$opkhRg3T0MPgVaUgq/kbkw==$0" ; |
查看回收站
1 | show recyclebin; |
flashback table的語(yǔ)法格式
在執(zhí)行閃回表操作期間,數(shù)據(jù)庫(kù)獲取閃回列表中所有指定的報(bào)表獨(dú)立DML鎖。當(dāng)正在恢復(fù)到之前狀態(tài)時(shí),這些鎖阻止對(duì)表的任何操作。閃回表操作在單個(gè)事物中執(zhí)行,不管閃回表中指定表的數(shù)量。要么所有的表都恢復(fù)到早期狀態(tài),要么都沒(méi)恢復(fù)。如果任何表的閃回表操作失敗,那么整個(gè)語(yǔ)句都失敗。閃回操作完成時(shí),表中的數(shù)據(jù)與表之前的時(shí)間點(diǎn)一直。但是,F(xiàn)LASHBACK TABLE到SCN或時(shí)間戳不保存rowid,FLASHBACK TABLE TO BEFORE DROP不能恢復(fù)引用約束。數(shù)據(jù)庫(kù)不能恢復(fù)與表關(guān)聯(lián)的早期結(jié)構(gòu)的統(tǒng)計(jì)信息。表當(dāng)前的索引是恢復(fù),并反映還原點(diǎn)表的狀態(tài)。如果該索引在還原點(diǎn)不存在,數(shù)據(jù)更新索引里來(lái)反映還原點(diǎn)表的狀態(tài)。然而,如果索引是在當(dāng)前時(shí)間和還原點(diǎn)之間被刪除,是不能恢復(fù)。
執(zhí)行閃回刪除
1 2 3 4 | flashback table emp1 to before drop; 也可以通過(guò)回收站中的名字執(zhí)行閃回: flashback table “BIN$opkhRg3T0MPgVaUgq /kbkw ==$0” to before drop; |
清空回收站
1 | purge recyclebin; |
“怎么刪除表和Oracle的回收站”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。