Mittwoch, 10. Juli 2013

Vektordaten mit mehr sehr vielen Stützpunkten speichern

Stützpunkte von Vektorgeometrien werden als SDO_ORDINATE_ARRAY gespeichert. Der dafür im Schema MDSYS definierte Typ ist ein "VARRAY(1048576) OF NUMBER". Das bedeutet, für 2D Geometrien können maximal 1048576 ⁄ 2 und für 3D Geometrien maximal 1048576 ⁄ 3 Stützpunkte gespeichert werden.

Das ist für so manche Geometrie zu wenig, um sie als SDO_GEOMETRY abzulegen.
Daher gibt es einen Workaround, der für die Version 11.2 nun auch im Oracle Spatial and Graph Online Handbuch dokumentiert und als Skript sdoupggeom.sql im Installationspfad der Oracle Datenbank liegt @$ORACLE_HOME/md/admin.
Das Kernstück des Skriptes ist das Überschreiben des Typs mittels:

alter type mdsys.sdo_ordinate_array modify limit 10000000 cascade;

Der Wert 10000000 kann bei Bedarf angepasst werden.
Zusätzlich werden über das Skript Prüfungen (z.B. ob Versionierung für Tabellen mit SDO_GEOMETRY-Spalten eingeschaltet ist) und anschließend ein Recompile der betroffenen Objekte vorgenommen.

Keine Kommentare:

Kommentar veröffentlichen