在oracle 11G中,我想永久地删除用户,即不应保留该用户的跟踪,我不应该得到这样的"现有对象"错误 - ORA-00955:当我尝试使用现有对象时,名称已被使用用其表格重新创建该用户.
请帮我这样做.谢谢.
编辑 -
用于创建具有表和列的用户的命令
CREATE USER Products identified by discounted
GRANT ALL PRIVILEGES TO Products
CREATE TABLE Cars(Brand varchar(25),Model varchar(25))
Run Code Online (Sandbox Code Playgroud)
上面的命令是完全删除用户并完全重新创建它的命令
DROP USER PRODUCTS CASCADE
CREATE USER Products identified by discounted
GRANT ALL PRIVILEGES TO Products
CREATE TABLE Cars(Brand varchar(25),Model varchar(25))
Run Code Online (Sandbox Code Playgroud)
导致异常 -
java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object
Run Code Online (Sandbox Code Playgroud)
eao*_*son 11
你没有说你登录的用户是什么,但我认为它是SYS或者具有很多神圣特权的人.
在最后一行中,您将CARS 在当前架构中创建表,而不是在产品架构中.你可能想要的是:
CREATE TABLE products.cars(brand varchar2(25), model varchar2(25));
Run Code Online (Sandbox Code Playgroud)
汽车表可能仍然存在于您之前尝试的当前架构中.您可以通过以下方式判断它是否存在:
SELECT owner, object_name, object_type FROM all_objects WHERE object_name = 'CARS';
Run Code Online (Sandbox Code Playgroud)
作为旁注,将所有权限授予普通用户并不是一个好主意,但我认为这是用于测试过程.此外,它更喜欢使用VARCHAR2而不是VARCHAR.