2

Oracle 11G では、ユーザーを永久に削除したい。つまり、そのユーザーの痕跡は残らないはずであり、次のような「既存のオブジェクト」エラーが発生しないはずです - ORA-00955: name is already used by an existing object, when I try toそのユーザーをそのテーブルで再作成します。

これを行うのを手伝ってください。ありがとう。

編集 -

テーブルと列を持つユーザーを作成するコマンド

CREATE USER Products identified by discounted
GRANT ALL PRIVILEGES TO Products
CREATE TABLE Cars(Brand varchar(25),Model varchar(25))

上記の後に、ユーザーを完全に削除して完全に再作成するコマンドが続きます

DROP USER PRODUCTS CASCADE
CREATE USER Products identified by discounted
GRANT ALL PRIVILEGES TO Products
CREATE TABLE Cars(Brand varchar(25),Model varchar(25))

例外を引き起こします-

java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object
4

2 に答える 2

11

ログインしているユーザーを指定していませんが、SYSまたはかなり神のような特権を持っている人だと思います。

最後の行では、製品スキーマではなくCARS 、現在のスキーマでテーブルを作成しています。おそらく必要なものは次のとおりです。

CREATE TABLE products.cars(brand varchar2(25), model varchar2(25));

おそらく、carsテーブルは、以前の試行からの現在のスキーマにまだ存在しています。これでどこかに存在するかどうかを知ることができます:

SELECT owner, object_name, object_type FROM all_objects WHERE object_name = 'CARS';

ちなみに、通常のユーザーにすべての権限を付与するのはあまり良い考えではありませんが、これはテスト手順用だと思います。また、のVARCHAR2代わりに使用することをお勧めしますVARCHAR

于 2012-08-15T02:48:35.937 に答える
-1

あなたの質問はあまりにも一般的です。私が理解したことに基づいて、次のスクリプトを使用すると、ユーザーが作成したすべてのオブジェクトを削除できます-

drop user USERNAME cascade;

ドキュメンテーション

これを正常に実行するには、このユーザーの接続を開いてはいけません。

于 2012-08-15T00:28:17.710 に答える