溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么刪除表和Oracle的回收站

發(fā)布時(shí)間:2021-11-04 13:33:07 來(lái)源:億速云 閱讀:222 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

本篇內(nèi)容介紹了“怎么刪除表和Oracle的回收站”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一、Oracle的Drop Table語(yǔ)句

首先,我們來(lái)看一下Oracle Drop Table的語(yǔ)法格式。

怎么刪除表和Oracle的回收站

 解釋一下里面的參數(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)。

二、閃回刪除:Flashback Drop

使用閃回刪除功能,可以撤消 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';

  怎么刪除表和Oracle的回收站 

  •  執(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

  怎么刪除表和Oracle的回收站 

  • 通過(guò)回收站中的對(duì)象名稱查詢表的數(shù)據(jù) 

1
2
3
4
5
下面的方式是錯(cuò)誤的:
select * from BIN$opkhRg3T0MPgVaUgq/kbkw==$0;
 
需要加上雙引號(hào):
select * from "BIN$opkhRg3T0MPgVaUgq/kbkw==$0";

  怎么刪除表和Oracle的回收站 

  • 查看回收站 

1
show recyclebin;

  怎么刪除表和Oracle的回收站 

  • flashback table的語(yǔ)法格式

怎么刪除表和Oracle的回收站

 在執(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;

  怎么刪除表和Oracle的回收站 

  •  清空回收站

1
purge recyclebin;

“怎么刪除表和Oracle的回收站”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI