ORA-20000 exec dbms_space 错误

数据库默认的用户表空间是USERS.,因为业务数据库一般都不需要USERS表空间,所以有可能会将其删除。但这会造成一个问题,因为数据库dbms_space.auto_space_advisor_job_proc 存储过程会默认去收集USERS表空间的信息,但却没有找到,故会报出下面一些信息:

ORA-12012: error on auto execute of job 8887
ORA-20000: ORA-20000: Content of the tablespace specified is not permanent or tablespace name is invalid
ORA-06512: at "SYS.PRVT_ADVISOR", line 1624
ORA-06512: at "SYS.DBMS_ADVISOR", line 186
ORA-06512: at "SYS.DBMS_SPACE", line 1338
ORA-06512: at "SYS.DBMS_SPACE", line 1554

这个问题,是ORACLE 10g数据库的一个内部Bug ,解决方法一,可以升级;方法二,可以进行如下处理:

第一步:先建立相应的表空间,怎么知道哪个表空间呢,要吧运行下面的SQL语句

select tablespace_name,status
from dba_auto_segadv_ctl
where tablespace_name not in(select tablespace_name from dba_tablespaces);

第二步:运行系统过程

exec dbms_space.auto_space_advisor_job_proc;

第三步:将刚建立的表空间删除

SQL>drop  tablespace   users  including  contents   and  datafiles;

 

你可能感兴趣的:(数据库,错误,exec,DBMS,space,ORA-20000)