Deutsch

Error: load_buffer (-51)

Fehlermeldung

Hinweis:
Der Inhalt dieses Artikels gilt nur für die ArcGIS-Versionen 8.x. Höhere Versionen von ArcGIS enthalten möglicherweise andere Funktionalitäten sowie andere Namen für Menüs, Befehle und Geoverarbeitungswerkzeuge, die sich auch an anderen Orten befinden können.

Beim Schwenken, Zoomen oder Abfragen eines in Oracle registrierten räumlichen Layers wird dieser Fehler im Protokoll "sde.errlog" zurückgegeben:

load_buffer (-51)

Ursache

Dieser Fehler ist das Ergebnis eines ungültigen MDSYS.SDO_DIM_ELEMENT. Weitere Informationen zu diesem Parameter finden Sie in der Oracle-Dokumentation.

Lösung oder Problemumgehung

Ändern Sie die Ausdehnungswerte für MDSYS.SDO_DIM_ELEMENT basierend auf Oracle-Berechnungen oder einer bestmöglichen Schätzung. Mit dem Oracle-Tool SDO_TUNE.EXTENT_OF können Sie das kleinste umgebende Rechteck der Daten in einem Layer bestimmen.

SQL-Beispiel für einen SDO-Layer, der fehlschlägt:

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 (reserved for future Spatial releases)
);

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 

SQL-Beispiele, die funktionieren:
 
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 (reserved for future Spatial releases)
);

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