2012-11-27 55 views
1

我有一個沒有表的Oracle模式(我放棄了它們)。當我查看user_constraints表格時,但是ORACLE DB user_constraints without tables

SELECT * FROM user_constraints; 

我看到了許多行。如何刪除這些約束條件?

DELETE FROM user_constraints WHERE owner='owner'; 

沒有工作,它給了我一個「權限不足」的錯誤。

SELECT owner, constraint_name, constraint_type, table_name, r_owner, r_constraint_name FROM user_constraints; 

    OWNER       CONSTRAINT_NAME    CONSTRAINT_TYPE TABLE_NAME      R_OWNER      R_CONSTRAINT_NAME    
    ORA_AI_1_9      BIN$z2XwnFUHEHrgQ4sGOR4Qeg==$0 P    BIN$z2XwnFUJEHrgQ4sGOR4Qeg==$0                

    ORA_AI_1_9      BIN$z1NhC6g4oErgQ4sGOR6gSg==$0 P    BIN$z1NhC6g6oErgQ4sGOR6gSg==$0                

    ORA_AI_1_9      BIN$z1anK5OEEHrgQ4sGOR4Qeg==$0 P    BIN$z1anK5OGEHrgQ4sGOR4Qeg==$0                

    ORA_AI_1_9      BIN$z1NhC6hhoErgQ4sGOR6gSg==$0 P    BIN$z1NhC6hjoErgQ4sGOR6gSg==$0    
+0

當你說你刪除了他們,你真的認爲你丟掉了桌子嗎?或者你只是刪除了數據? 'user_tables'中有行嗎? –

+0

我丟掉了桌子。 user_tables爲空 – user1069968

+0

你的輸出顯示recyclebin ..查看答案的詳細信息 – DazzaL

回答

3

那麼你在10/11g上有沒有recylebin?

SQL> select count(*) from user_tables; 

    COUNT(*) 
---------- 
     0 

SQL> select count(*) from user_constraints; 

    COUNT(*) 
---------- 
     0 

SQL> create table foo(id number primary key); 

Table created. 

SQL> ALTER SESSION SET recyclebin = ON; 

Session altered. 

SQL> select count(*) from user_tables; 

    COUNT(*) 
---------- 
     1 

SQL> select count(*) from user_constraints; 

    COUNT(*) 
---------- 
     1 

SQL> drop table foo; 

Table dropped. 

SQL> select count(*) from user_constraints; 

    COUNT(*) 
---------- 
     1 

SQL> select count(*) from user_tables; 

    COUNT(*) 
---------- 
     0 

SQL> 

你可以清除reclebin來解決這個問題。

SQL> purge recyclebin; 

Recyclebin purged. 

SQL> select count(*) from user_constraints; 

    COUNT(*) 
---------- 
     0 
+0

'清除回收站;'工作!謝謝 :) – user1069968

1

你可以給喜歡的語句DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS]

+0

我下了這樣的最新表。在使用SQL DEVELOPER的GUI之前。現在我沒有桌子。 – user1069968

0

首先,你永遠不應該直接做DML對像user_constraints數據字典表。

其次,你是否擁有在其他用戶擁有的表上創建的約束?

SELECT owner, constraint_name, constraint_type, table_name, r_owner, r_constraint_name 
    FROM user_constraints 

return?

+0

約300行的表格。我是唯一的用戶。它是我們學校每個學生的帳戶。 – user1069968

+0

@ user1069968 - 所以這個數據庫中沒有其他模式?這在學校裏似乎不太可能 - 爲每個學生提供一個單獨的數據庫實例是非常非常不尋常的。你可以編輯你的問題來發布這個查詢的實際結果(隨便發佈前幾行數據)。 –

+0

完成。用戶名永遠是相同的,它的名字! – user1069968