Oracle使用DBMS_SQL.Parse创建索引

Oracle使用DBMS_SQL.Parse创建索引,oracle,indexing,oracle-sqldeveloper,oracle12c,Oracle,Indexing,Oracle Sqldeveloper,Oracle12c,我正在尝试创建如下索引: DECLARE l_cursor NUMBER; l_return NUMBER; v_stmt CLOB; BEGIN v_stmt:= TO_CLOB('CREATE INDEX IX_Job ON "JOBSTEP"("JOBID") TABLESPACE "USERS";'); l_cursor := DBMS_SQL.open_cursor; DBMS_SQL.parse(l_cursor, v_stmt, DBMS_SQL.NATIVE

我正在尝试创建如下索引:

DECLARE l_cursor NUMBER;
  l_return NUMBER;
  v_stmt CLOB;
BEGIN
  v_stmt:= TO_CLOB('CREATE INDEX IX_Job ON "JOBSTEP"("JOBID") TABLESPACE "USERS";');
  l_cursor  := DBMS_SQL.open_cursor;
  DBMS_SQL.parse(l_cursor, v_stmt, DBMS_SQL.NATIVE);
  DBMS_SQL.CLOSE_CURSOR(l_cursor);  
END;
请在执行时查找以下错误:

ORA-02158:创建索引选项无效

ORA-06512:在“SYS.DBMS_SQL”第1185行ORA-06512:在第7行 215800000-“创建索引选项无效” *原因:COMPRESS、NOCOMPRESS、PCTFREE、INITRANS以外的选项, MAXTRANS、存储、表空间、并行、非并行、可恢复、, 指定了不可恢复、日志记录、非日志记录、本地或全局。 *操作:选择一个有效的创建索引选项

如果我在“JOBSTEP”(“JOBID”)表空间“USERS”上执行
createindex IX_作业像这样的索引正在创建

使用Oracle12c,我使用SQLDeveloper尝试了所有这些。
请有人帮我解决这个问题。我的代码有什么问题吗

为什么不简单地使用
executeimmediate v_stmt?删除
v_stmt
末尾的分号;不要以分号结束
create index
语句-这是导致错误的原因。另外。无需使用
to_CLOB()
函数。最后,完全不需要使用动态SQL。使用静态SQL。我不能使用它,因为我将在该语句中执行超过10万个字符,这在“EXECUTE IMMEDIATE”中是不可能的@NicholasKrasnov感谢它通过删除分号来工作。为什么不简单地使用
EXECUTE IMMEDIATE v_stmt?删除
v_stmt
末尾的分号;不要以分号结束
create index
语句-这是导致错误的原因。另外。无需使用
to_CLOB()
函数。最后,完全不需要使用动态SQL。使用静态SQL。我不能使用它,因为我将在该语句中执行超过10万个字符,这在“EXECUTE IMMEDIATE”中是不可能的@NicholasKrasnov感谢它通过删除分号而起作用。