刪除Oracle某數(shù)據(jù)庫(kù)下的所有表 |
發(fā)布時(shí)間: 2012/9/5 17:31:18 |
今天使用imp導(dǎo)入dmp格式的數(shù)據(jù)庫(kù)備份的時(shí)候,發(fā)現(xiàn)導(dǎo)入出錯(cuò),提醒對(duì)象已經(jīng)存在,才記起來要先刪除所有表才能導(dǎo)入,如果數(shù)據(jù)庫(kù)有幾十上百個(gè)表的話,一個(gè)一個(gè)去刪除真浪費(fèi)時(shí)間。為了方便,就寫了一條語(yǔ)句來查詢所有表和生成批量刪除的語(yǔ)句: select 'drop table '||table_name||';' as sqlscript from user_tables; SQLSCRIPT- -------------------------------------------- 就可以復(fù)制所有表的drop語(yǔ)句了,一次批量執(zhí)行完。 還有另外一個(gè)方法imp時(shí)使用ignore參數(shù),可以忽略已經(jīng)存在的對(duì)象,免除手動(dòng)刪除表的操作: 參數(shù)說明: Oracle在恢復(fù)數(shù)據(jù)的過程中,當(dāng)恢復(fù)某個(gè)表時(shí),該表已經(jīng)存在,就要根據(jù)ignore參數(shù)的設(shè)置來決定如何操作。 若ignore=y,Oracle不執(zhí)行CREATE TABLE語(yǔ)句,直接將數(shù)據(jù)插入到表中,假如插入的記錄違反了約束條件,比如主鍵約束,則出錯(cuò)的記錄不會(huì)插入,但合法的記錄會(huì)添加到表中。 若ignore=n,Oracle不執(zhí)行CREATE TABLE語(yǔ)句,同時(shí)也不會(huì)將數(shù)據(jù)插入到表中,而是忽略該表的錯(cuò)誤,繼續(xù)恢復(fù)下一個(gè)表。
本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |