1

テーブルのないOracleスキーマがあります(テーブルを削除しました)。user_constraintsしかし、テーブルを見ると

    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            
4

3 に答える 3

3

あなたは10/11gを使用していて、おそらくリサイクルビンを持っていますか?

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
于 2012-11-27T16:44:12.377 に答える
1

次のようなステートメントを与えることができますDROP TABLE [schema.]table_name [CASCADE CONSTRAINTS]

于 2012-11-27T16:31:38.810 に答える
0

まず、 のようなデータ ディクショナリ テーブルに対して DML を直接実行しないでくださいuser_constraints

次に、他のユーザーが所有するテーブルに対して作成された制約を所有していますか? 何が

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

戻る?

于 2012-11-27T16:33:56.460 に答える