4 votos

¿Cómo permitir más vértices de polilínea para una ST_GEOMETRÍA en Oracle/SDE?

Estoy recibiendo un error al escribir la geometría (en ArcObjects) que tiene un gran número de vértices (alrededor de 900). Tan grande, pero no ridículamente grande. Esperaría que esto no fuera un problema y no recuerdo este problema en SQL Server o PostGreSQL. El almacenamiento de geometría es ST_GEOMETRÍA.

El error es:
ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column

y parece estar relacionado con el número de vértices que tiene la polilínea. Muchos vértices: Me da el error mencionado anteriormente. Menos vértices: no hay problemas.

A modo de prueba, generalizé la geometría en dos puntos: el éxito.

He empezado a trabajar en mi camino y he llegado a 120 vértices con éxito. ¿Hay una mejor manera de determinar ese límite? ¿Hay alguna manera de aumentar el número de vértices que puedo tener en una línea? ¿Hay algún parámetro de DBTUNE que gestione esto? He buscado en Google el error ORA real, pero no estoy seguro de cómo aplicar esto a un repositorio ArcSDE.

Un par de notas:

  1. No poseo ni administro el repositorio de ArcSDE y no puedo modificarlo.
  2. Romper la característica de la polilínea larga en varias más pequeñas no es una opción ( para este proyecto ).
  3. Escribir usando feature.Shape = geometry; feature.Store();
  4. El código se ejecuta como se espera para la mayoría de las características tengo 2 que tienen un alto número de puntos que causan el error ORA.

La versión del Oráculo:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production PL/SQL Release 11.2.0.2.0 - Production CORE 11.2.0.2.0 Production TNS for Linux: Version 11.2.0.2.0 - Production NLSRTL Version 11.2.0.2.0 - Production

1voto

Rafael Almeida Puntos 141

No estoy familiarizado con los Arcobjects y el Oráculo, pero por el mensaje de error parece que sde está probablemente tratando de crear la forma incorrectamente (bind variables) ver http://ora-24816.ora-code.com/ Dices que el tipo de almacenamiento es ST_GEOMETRÍA- ¿significa esto que estás tratando de enviarlo como WKT? Si es así, ¿no puedes intentarlo como un objeto SDO_GEOMETRY nativo? ¿Es esta una opción en Arcobjects? Tal vez publicar parte del código ayudaría

1voto

Ali Parr Puntos 2490

Intenta fundir la geometría a ITopologicalOperator2, establece IsKnownSimple en falso, y luego llama a Simplify.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X