parto da queste istruzioni che funzionano con sqldeveloper
col codice vb.net facciocodice:DROP INDEX COMUNI_SARDEGNA_IDX; COMMIT; DELETE FROM USER_SDO_GEOM_METADATA WHERE UPPER(TABLE_NAME) = 'COMUNI_SARDEGNA'; COMMIT; UPDATE COMUNI_SARDEGNA T SET T.SHAPE.SDO_SRID = 82087 WHERE T.SHAPE IS NOT NULL; COMMIT; INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)VALUES ('COMUNI_SARDEGNA', 'SHAPE', SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 1400624, 1584982, 0.005),SDO_DIM_ELEMENT('Y', 4297530, 4581223, 0.005)), 82087); COMMIT; CREATE INDEX COMUNI_SARDEGNA_IDX ON COMUNI_SARDEGNA (SHAPE) INDEXTYPE IS MDSYS.SPATIAL_INDEX; COMMIT;
comando.CommandText = sql
comando.ExecuteNonQuery()
dove sql è questa stringa:
BEGIN DROP INDEX COMUNI_SARDEGNA_IDX; COMMIT; DELETE FROM USER_SDO_GEOM_METADATA WHERE UPPER(TABLE_NAME) = 'COMUNI_SARDEGNA'; COMMIT; UPDATE COMUNI_SARDEGNA T SET T.SHAPE.SDO_SRID = 82087 WHERE T.SHAPE IS NOT NULL; COMMIT; INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)VALUES ('COMUNI_SARDEGNA', 'SHAPE', SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 1400624, 1584982, 0.005),SDO_DIM_ELEMENT('Y', 4297530, 4581223, 0.005)), 82087); COMMIT; CREATE INDEX COMUNI_SARDEGNA_IDX ON COMUNI_SARDEGNA (SHAPE) INDEXTYPE IS MDSYS.SPATIAL_INDEX; COMMIT; END;
l'errore che dà e che non capisco è:
Oracle.DataAccess.Client.OracleException ORA-06550: line 1, column 7:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
<an alternatively-quoted SQL string> in Oracle.DataAccess.Client.OracleException.HandleErr orHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
in Oracle.DataAccess.Client.OracleException.HandleErr or(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
in Oracle.DataAccess.Client.OracleCommand.ExecuteNonQ uery()