由于程序的登陆用户要具有一些数据库的删除,修改功能,所以要给这些用户付一些权限,在dba_user这张系统里有用户的信息,users这张表只是程序自己记有多少个用户用的,用truncate table 就可以删除全部数据,但dba_user这张表里,不是要用drop user 这命令删除用户么,但drop user只能一个一个用户删除,我想除了系统自己的几个保留用户(如system,sys等)外的其他用户一下就能删除,主要是其他的用户太多如果一个一个删,要删好几个小时,才想能不能有个简便的方法删用户。
set heading off set feedback off spool c:\a.txt select 'DROP USER '||username||' CASCADE;' from dba_users where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP' spool off
waterfirer(水清) ,感谢你的回答,但我不明白你的思路,你用spool c:\a.txt语句的目的是把表里数据输出到文件里,但select 'DROP USER '||username||' CASCADE;'from dba_users where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP' 这句话我看不懂什么意识,而且执行时抱错, 'DROP USER '||username||' CASCADE; 删除用户,放到select中是什么意识,希望能讲清楚点
where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP' 主要是留住系统用户,免得你把system,sys给删了执行时报错吗?报什么错?我试的时候没有问题啊。
错误是 ERROR at line 4: ORA-00933: SQL command not properly ended 好像说的是 select 'DROP USER '||username||' CASCADE;' from dba_users where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP' 这段话。不知道是不是我没有用sysdba身份登陆的问题, 我在sql plus中用 SQL> conn system/manager@back as sysdba ERROR: ORA-12154: TNS:could not resolve service name 不能登陆 但我用conn system/manager@back就能登陆,我在 DBA studio 中看了system权限有dba的权限,不知道为什么不能用sysdba登陆
用system就行 把你在Sqlplus中的内容贴出来吧。 sql> select 'DROP USER '||username||' CASCADE;' 2 from dba_users 3 where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP'ERROR at line 4,第四行是哪一行?
set feedback off
spool c:\a.txt
select 'DROP USER '||username||' CASCADE;'
from dba_users
where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP'
spool off
where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP' 这句话我看不懂什么意识,而且执行时抱错, 'DROP USER '||username||' CASCADE; 删除用户,放到select中是什么意识,希望能讲清楚点
主要是留住系统用户,免得你把system,sys给删了执行时报错吗?报什么错?我试的时候没有问题啊。
ERROR at line 4:
ORA-00933: SQL command not properly ended
好像说的是
select 'DROP USER '||username||' CASCADE;'
from dba_users
where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP'
这段话。不知道是不是我没有用sysdba身份登陆的问题,
我在sql plus中用
SQL> conn system/manager@back as sysdba
ERROR: ORA-12154: TNS:could not resolve service name
不能登陆
但我用conn system/manager@back就能登陆,我在 DBA studio 中看了system权限有dba的权限,不知道为什么不能用sysdba登陆
把你在Sqlplus中的内容贴出来吧。
sql> select 'DROP USER '||username||' CASCADE;'
2 from dba_users
3 where account_status='OPEN' and initial_rsrc_consumer_group<>'SYS_GROUP'ERROR at line 4,第四行是哪一行?