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语句,确认问题是否得到解决。