文档解释
ORA-10922: Temporary tablespace group is empty
Cause: An attempt was made to allocate a temporary segment in a group, which now no longer has any members.
Action: Either add some temporary tablespaces or change the temporary tablespace for this user.
ORA-10922错误指示临时表空间组是空的,这意味着Oracle会话中没有可用的临时表空间,以便在分配临时段时使用。
官方解释
ORA-10922表示您以不正确的参数组合(使用temp_tablespace_goup)调用了dbms_session.set_tablespace_group。
它表示组中没有任何临时表空间,如果您必须使用dbms_session.set_tablespace_group函数使某个会话更改其默认临时表空间,则必须向这个组中添加临时表空间。
常见案例
ORA-10922错误通常发生在回滚后,尝试分配临时段的文件时发生。
正常处理方法及步骤
1. 使用SQL脚本查看temp_tablespace_group参数:show parameter temp_tablespace_group;
2. 若此参数为空,则使用alter system set temp_tablespace_group=’group_name’ scope=spfile;修改参数
3. 确认模式在合适的temp_tablespace_group中 else 使用 alter session set temp_tablespace_group = ‘group_name’; 更改到合适的组
4. 创建临时表空间组:CREATE TEMPORARY TABLESPACE temp_space_name TEMPFILE ‘filename.dbf’ SIZE 50M ;
5. 将创建的临时表空间组添加到temp_tablespace_group参数中:ALTER TABLESPACE temp_space_name ADD TO GROUP group_name;