Español

Error: load_buffer (-51)

Mensaje de error

Nota:
El contenido de este artículo pertenece únicamente a las versiones 8.x de ArcGIS. Es posible que versiones posteriores de ArcGIS incluyan funcionalidades distintas, así como nombres y ubicaciones distintos para menús, comandos y herramientas de geoprocesamiento.

Este error se devuelve en el sde.errlog al desplazarse, hacer zoom o consultar una capa espacial de Oracle registrada:

load_buffer (-51)

Causa

El error es el resultado de MDSYS.SDO_DIM_ELEMENT no válido. Consulte la documentación de Oracle para obtener más información sobre este parámetro.

Solución o solución alternativa

Cambie los valores de extensión de MDSYS.SDO_DIM_ELEMENT en los cálculos o aproximaciones de Oracle. Puede usar la herramienta de Oracle SDO_TUNE.EXTENT_OF para determinar el rectángulo mínimo de delimitación de los datos de una capa.

Ejemplo de SQL para una capa SDO que da error:

CREATE TABLE cultitem(
CULT_ITEM_INDX NUMBER(6) NOT NULL,
CULT_SET_CHVN VARCHAR2(6) NOT NULL,
GEOMETRY  MDSYS.SDO_GEOMETRY);

INSERT  INTO cultitem VALUES (940,'BBQ459',MDSYS.SDO_GEOMETRY(
  2003,NULL,NULL,
  MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),
  MDSYS.SDO_ORDINATE_ARRAY(
  -97.11661, 29.6236114, -97.13016, 29.6233806, -97.129929, 29.6014086,
-97.116456,
  29.6016074, -97.11661, 29.6236114)));

INSERT INTO USER_SDO_GEOM_METADATA
values(
'CULTITEM','GEOMETRY',
   MDSYS.SDO_DIM_ARRAY(   
    MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.000000005),
    MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.000000005)
     ),
  NULL   -- SRID (reservado para futuras versiones de Spatial)
);

commit;

CREATE INDEX cultitem_hybrid ON CULTITEM(GEOMETRY)
  INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS('SDO_LEVEL=10
SDO_NUMTILES=2');

sdelayer -o register -l cultitem,goemetry -e a -c cult_item_indx
-k sdo_geometry -S "Culture Item Oracle Spatial" -u hhwa -p pwd 

Ejemplos de SQL que funcionan:
 
CREATE TABLE cultitem(
CULT_ITEM_INDX NUMBER(6) NOT NULL,
CULT_SET_CHVN VARCHAR2(6) NOT NULL,
GEOMETRY  MDSYS.SDO_GEOMETRY);

INSERT  INTO cultitem VALUES (940,'BBQ459',MDSYS.SDO_GEOMETRY(
  2003,NULL,NULL,
  MDSYS.SDO_ELEM_INFO_ARRAY(1,3, 1),
  MDSYS.SDO_ORDINATE_ARRAY(
  -97.11661, 29.6236114, -97.13016, 29.6233806, -97.129929, 
29.6014086,
-97.116456,
  29.6016074, -97.11661, 29.6236114)));

INSERT INTO USER_SDO_GEOM_METADATA
values(
'CULTITEM','GEOMETRY',
   MDSYS.SDO_DIM_ARRAY(   
    MDSYS.SDO_DIM_ELEMENT('X', -100, 0, 0.0000005),
    MDSYS.SDO_DIM_ELEMENT('Y', 0, 90, 0.0000005)
     ),
  NULL   -- SRID (reservado para futuras versiones de Spatial)
);

commit;

CREATE INDEX cultitem_fixed ON CULTITEM(GEOMETRY)
  INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS('SDO_LEVEL=8'); 
 
CREATE TABLE cola_markets ( mkt_id NUMBER(6) NOT NULL, name VARCHAR2(32), 
	shape MDSYS.SDO_GEOMETRY); 

INSERT INTO cola_markets VALUES( 2, 'cola_b', MDSYS.SDO_GEOMETRY( 2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), 
	MDSYS.SDO_ORDINATE_ARRAY(5,1, 8,1, 8,6, 5,7, 5,1) ) ); 

INSERT INTO cola_markets VALUES( 3, 'cola_c', MDSYS.SDO_GEOMETRY( 2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),
	MDSYS.SDO_ORDINATE_ARRAY(3,3, 6,3, 6,5, 4,5, 3,3) ) ); 

INSERT INTO USER_SDO_GEOM_METADATA VALUES
	( 'cola_markets', 'shape', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X', 0, 20, 0.005), 
	MDSYS.SDO_DIM_ELEMENT('Y', 0, 20, 0.005) ), NULL); 

CREATE INDEX cola_spatial_idx ON cola_markets(shape) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS('SDO_LEVEL = 8'); 

sdelayer -o register -l ,shape -k SDO_GEOMETRY -c mkt_id -i sde8ora8i -u test -p test