ORA-01907: TABLESPACE keyword expected

文档解释

ORA-01907: TABLESPACE keyword expected

Cause: keyword missing

Action: supply missing keyword

ORA-01907: TABLESPACE keyword expected是 Oracle Server 数据库在解析DML语句时抛出的一种错误。报错的原因主要是因为语法在不正确的地方使用了 TABLESPACE 关键字,通常是 TABLESPACE 关键字在没有指定表空间的情况下使用,导致解析语句的时候无法获取正确的表空间。

官方解释

ORA-01907: TABLESPACE keyword expected

Cause: A SQL statement issued a TABLESPACE keyword in a location where it is not allowed.

Action: Check the syntax of the SQL statement and specify the correct TABLESPACE keyword when required.

常见案例

典型的报错案例为当在执行建表语句的时候,显式地用 TABLESPACE 关键字指定了没有必要指定表空间的地方:

CREATE TABLE emp

( empno NUMBER(4)

,

ename VARCHAR2(10) TABLESPACE users

,

sal NUMBER(7,2)

);

上面这个建表语句会导致报错ORA-01907: TABLESPACE keyword expected,原因为列定义中的语法显式指定的 TABLESPACE 关键字,列定义是没有必要指定表空间的,由于会出现多余的 TABLESPACE 关键字,导致会抛出ORA-01907: TABLESPACE keyword expected错误。

正常处理方法及步骤

1)检查解析DML时遇到的SQL语句,查找是否有多余的 TABLESPACE 关键字使用,无论语法中错写了还是正确使用都需要检查查看;

2)在必要的时候正确指定表空间;

3)确认无误后重新执行SQL语句,确认问题是否得到解决。

你可能感兴趣的