今天用oracle里面的execute执行字符串命令式,由于命令里面带有字符串参数,搞了好就才搞定。
正常语句是这样的:create index TB_DISARREGION_FAKEFIREPT_SPX on TB_DISARREGION_FAKEFIREPOINT(REGIONINFO)
INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS(‘TABLESPACE=GISINDEXSPACE’) NOPARALLEL;
问题就出在PARAMETERS(‘TABLESPACE=GISINDEXSPACE’)这里,这个里面包含了一个字符串参数,用execute执行,需要进行处理,将单引号用两个单引号替代才行
sqlstr :=
'create index TB_DISARREGION_FAKEFIREPT_SPX on TB_DISARREGION_FAKEFIREPOINT(REGIONINFO)
INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS(''TABLESPACE=GISINDEXSPACE'') NOPARALLEL';
dbms_output.put_line(sqlstr);
EXECUTE IMMEDIATE sqlstr;