如果表只有一行,使用count(*)也出错吗,临时表空间有多大,是不是被其他会话占用了,用alter tablespace name coalesce;回收一下。
我又试了一下,看来不是临时表空间不够的问题,test 表才30M左右,临时表空间有300M, 用户在临时表空间有无限的表空间系统权限, 1。 select count(*) from test ; 正确 2。 select a,count(*) from test group by a ; 无法在本地管理的表空间创建临时段 奇怪了
ORA-03212 Temporary Segment cannot be created in locally-managed tablespaceCause: An attempt was made to create a temporary segment for SORT/HASH/LOBS in a locally- managed permanent tablespace.Action: Alter temporary tablespace of user to a temporary tablespace or a dictionary- managed permanent tablespace.
还是不行: 我用 这个命令:ALTER TABLESPACE "表空间名" PERMANENT 1. ORA-01660: 表空间'MYSPACE'已是永久性2. ORA-01660: 表空间'TEMPSPACE'已是永久性另外,我发现一个问题: 表test的字段定义为: a 为varchar2(300) , b为varchar2(10) 1. select b,count(*) from test group by b ; 正确2。select a,count(*) from test group by a : 无法在本地管理的表空间创建临时段请问是不是因为A的内容太长引起的错误(A最长的记录有23个字符)
在操作系统下执行命令: oerr ora 错误代码 就可以看到对错误的解释。 用这个命令试试,将表空间改为临时性的: alter tablespace name temporary; 有可能是A字段的记录长度较大造成的,而你的表空间是永久的,系统不能使用它排序,只能用内存排序。
alter tablespace myspace temporary ORA-01662: 表空间'MYSPACE'非空且无法设置为暂时性难道我要先把表空间请空吗?还有,如果我用manager 管理员 登陆,就可以1。 connect system/manager 2. select a,count(*) from test.test group by a ; 正确 为什么呢
用户在临时表空间有无限的表空间系统权限,
1。 select count(*) from test ; 正确
2。 select a,count(*) from test group by a ; 无法在本地管理的表空间创建临时段
奇怪了
我查了一下这个错误号,是因为要在local-managed表空间上创建临时段, =================
请问如何查错误号
managed permanent tablespace.Action: Alter temporary tablespace of user to a temporary tablespace or a dictionary-
managed permanent tablespace.
我用 这个命令:ALTER TABLESPACE "表空间名" PERMANENT 1. ORA-01660: 表空间'MYSPACE'已是永久性2. ORA-01660: 表空间'TEMPSPACE'已是永久性另外,我发现一个问题:
表test的字段定义为: a 为varchar2(300) , b为varchar2(10) 1. select b,count(*) from test group by b ; 正确2。select a,count(*) from test group by a : 无法在本地管理的表空间创建临时段请问是不是因为A的内容太长引起的错误(A最长的记录有23个字符)
oerr ora 错误代码
就可以看到对错误的解释。
用这个命令试试,将表空间改为临时性的:
alter tablespace name temporary;
有可能是A字段的记录长度较大造成的,而你的表空间是永久的,系统不能使用它排序,只能用内存排序。
2. select a,count(*) from test.test group by a ; 正确 为什么呢