暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

ORA-02216: tablespace name expected 报错及解决

原创 lxs_data 2022-01-18
5091

 ORA-02216 报错

    创建表空间时提示 ORA-02216错误,

    此错误是由于表空间命令含有或带有特殊字符或数字开头产生了,导致数据库对此表空间名无法识别,

     可以通过对表空间名添加双引号解决,即"表空间名",示例:

    create tablespace "INDEX" datafile '/dev/rvdata_index_01' size 1014m

    在10g及之前的版本中,或在存储库中,提示ORA-02216错误是由于表空间名称含有特殊字符或数字等问题或以数字开头或者含有空格;

     在12.1.0.1以后的版本中,由于表空间含有空格,需要先把表空间改名后再做操作。


Oracle MOS  Cannot Drop Tablespace With Trailing Space In The Name. (Doc ID 2177037.1)  提到:

      在12.2.0.1 及更高版本中,意外创建的带有尾随空格“XXX_TRC”的错误表空间名称。

      无法删除带有 ora-959 错误的表空间。

示例:

orcl SQL> select '"'||name||'"' from sys.ts$;

'"'||NAME||'"'
--------------------------------
"EXAMPLE"
"SYSAUX"
"SYSTEM"
"XXX_A"
"XXX_C"
"XXX_S"
"XXX_TRC"
"XXX_TRC " ---> this is the wrong one
"XXX_TST"
"TEMP"
"UNDOTBS1"
"UNDOTBS2"
"USERS"

13 rows selected.

orcl SQL> drop tablespace 'XXX_TRC ' including contents and datafiles;
drop tablespace 'XXX_TRC ' including contents and datafiles
  *
ERROR at line 1:
ORA-02216: tablespace name expected

orcl SQL> drop tablespace "XXX_TRC " including contents and datafiles;
drop tablespace "XXX_TRC " including contents and datafiles
*
ERROR at line 1:
ORA-00959: tablespace 'XXX_TRC ' does not exist

当有表空间名称时,一个是有空间的,一个是没有空间的。它不允许删除表空间。

"XXX_TRC " >>>>>> 表空间名称,末尾有空格

"XXX_TRC" >>>>> 表空间名称末尾没有空格。

 但是如果表空间名称中只有一个表空间有或没有空格,则可以删除该表空间

解决方法:

    更改表空间名称并重试删除。 

示例:

SQL> ALTER TABLESPACE "XXX_TRC " RENAME TO "TESTDROP";

Tablespace altered.

SQL> select ts#,name from v$tablespace;

  TS# NAME
---------- ------------------------------
  0 SYSTEM
  1 SYSAUX
  2 UNDOTBS1
  4 USERS
  3 TEMP
  6 EXAMPLE
  7 TEST
  9 TESTDROP
  10 XXX_TRC

9 rows selected.

SQL> drop tablespace testdrop including contents and datafiles;

Tablespace dropped.







「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论