oracle怎么刪除所有表

oracle怎么刪除所有表

oracle刪除所有表的方法是

一、禁止所有的外鍵約束

在pl/sql developer下執行如下語句:

SELECT?'ALTER?TABLE?'?||?table_name?||?'?disable?CONSTRAINT?'?||?constraint_name?||?';'?FROM?user_constraints ?where?CONSTRAINT_TYPE?=?'R';

把查詢出來的結果拷出來在pl/sql developer時執行。
若沒有pl/sql developer,可以在sqlplus里操作,方法如下:
1. 打開sqlplus,并用相應的用戶連接。
2. 把pagesize設大點,如set pagesize 20000
3. 用spool把相應的結果導到文件時,如

SQL>?spool?/home/oracle/constraint.sql SQL>?SELECT?'ALTER?TABLE?'?||?table_name?||?'?disable?CONSTRAINT?'?||?constraint_name?||?';'?FROM?user_constraints? where?CONSTRAINT_TYPE?=?'R'; SQL>?spool?off

4. 已經生成了包含相應語句的腳本,不過腳本文件里的最前和最后面有多余的語句,用文本編輯器打開,并刪除沒用的語句即可
5. 重新用相應的用戶登錄sqlplus,執行如下命令

SQL>?@/home/oracle/constraint.sql

二、用delete或truncate刪除所有表的內容

SELECT?'DELETE?FROM?'||?table_name?||?';'?FROM?USER_TABLES ORDER?BY?TABLE_NAME;

SELECT?'TRUNCATE?TABLE?'||?table_name?||?';'?FROM?USER_TABLES ORDER?BY?TABLE_NAME;

用第一步類似的方法操作。要注意的一點是,若表的數據有觸發器相關聯,只能用truncate語句,不過truncate語句不能回滾,所以時要注意

三、把已經禁止的外鍵打開

SELECT?'ALTER?TABLE?'?||?table_name?||?'?enable?CONSTRAINT?'?||?constraint_name?||?';'?FROM?user_constraints? where?CONSTRAINT_TYPE?=?'R';

推薦教程: 《Oracle教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享