您的位置:首页 > 数据库

ora-12910 不能设置默认表空间的问题

2017-12-11 21:14 555 查看
select tablespace_name,contents from dba_tablespaces;



其中PERMANENT 为永久表空间,TEMPORARY为临时表空间,系统默认表空间要为永久表空间才可以,我的TEMP就创建错误了来了  。

解决方法:oracle必须存在一个默认的临时表空间,先建立一个临时表空间temp1,并将其默认,然后删除掉temp临时表空间,再建立temp临时表空间,指定temp为默认临时表空间,最后将temp1临时表空间删除掉。

--a
CREATE TEMPORARY TABLESPACE temp1 TEMPFILE 'D:\app\zy\virtual\oradata\orcl\temp1.dbf' SIZE 1024 m
AUTOEXTEND ON NEXT 10 m MAXSIZE UNLIMITED;
--b
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp1;           ---这里如果temp1为永久表空间则会出错
--c
DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
--d
CREATE TEMPORARY TABLESPACE temp TEMPFILE 'D:\app\zy\virtual\oradata\orcl\temp.dbf' SIZE 1024 m
AUTOEXTEND ON NEXT 10 m MAXSIZE UNLIMITED;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
DROP TABLESPACE temp1 INCLUDING CONTENTS AND DATAFILES;
这样创建其实就是我上面截图的temp为临时表空间,不行的,所以上面我们只做啊a、b、c步骤,目的删除默认的temp
2.创建永久表空间
create tablespace temp datafile 'D:\app\zy\virtual\oradata\orcl\temp.dbf' size 256m autoextend on next 256m segment space management auto;
3.设置当前登录用户的默认表空间sys为我当前登录的用户
alter user sys default tablespace temp
在此查询temp的contents变了永久表空间
创建用户就可以选择temp为默认表空间了


最后总结下,表空间分为永久表空间(PERMANENT)和临时表空间(TEMPORARY),要分别创建,如果系统有永久表空间直接设置当前用户的表空间为永久即
alter user 当前用户  default tablespace 永久表空间名称


,我这里是为了方便把,temp设置为系统默认表空间的列子。()




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oreacle plsql