집 >데이터 베이스 >MySQL 튜토리얼 >因用户错误创建index报ORA-01129错误
数据库版本 SQL select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionPL/SQL Release 11.2.0.4.0 - Production
数据库版本
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for HPUX: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
报ORA-01129错误
SQL> create index SERIVCE.ind_xifenfei on SERVICE.t_user(create_date); create index SERIVCE.ind_xifenfei on SERVICE.t_user(create_date) * ERROR at line 1: ORA-01129: user's default or temporary tablespace does not exist
查询表空间信息
SQL> select TABLESPACE_NAME,CONTENTS,STATUS from dba_tablespaces where TABLESPACE_NAME in ('SERVICE','TEMP'); TABLESPACE_NAME CONTENTS STATUS ------------------------------ --------- --------- SERVICE PERMANENT ONLINE TEMP TEMPORARY ONLINE
通过分析,证明相关的表空间都存在,进一步检查sql语句,发现SERVICE被错误的书写为了SERIVCE,检查SERIVCE用户.
SQL> select count(*) from dba_users where username='SERIVCE'; COUNT(*) ---------- 0
通过分析,可以知道是因为index对应的用户不存在,从而出现了ORA-01129的错误,按道理应该报ORA-01918,而不是ORA-01129.查询MOS发现Bug 17058847 Creating index in non existing schema results in ORA-1129 and not ORA-1918
原文地址:因用户错误创建index报ORA-01129错误, 感谢原作者分享。