刪除Oracle某數據庫下的所有表 |
發布時間: 2012/9/5 17:31:18 |
今天使用imp導入dmp格式的數據庫備份的時候,發現導入出錯,提醒對象已經存在,才記起來要先刪除所有表才能導入,如果數據庫有幾十上百個表的話,一個一個去刪除真浪費時間。為了方便,就寫了一條語句來查詢所有表和生成批量刪除的語句: select 'drop table '||table_name||';' as sqlscript from user_tables; SQLSCRIPT- -------------------------------------------- 就可以復制所有表的drop語句了,一次批量執行完。 還有另外一個方法imp時使用ignore參數,可以忽略已經存在的對象,免除手動刪除表的操作: 參數說明: Oracle在恢復數據的過程中,當恢復某個表時,該表已經存在,就要根據ignore參數的設置來決定如何操作。 若ignore=y,Oracle不執行CREATE TABLE語句,直接將數據插入到表中,假如插入的記錄違反了約束條件,比如主鍵約束,則出錯的記錄不會插入,但合法的記錄會添加到表中。 若ignore=n,Oracle不執行CREATE TABLE語句,同時也不會將數據插入到表中,而是忽略該表的錯誤,繼續恢復下一個表。
本文出自:億恩科技【www.vbseamall.com】 |