9. Modul GMORAOUT - Intergraph GeoMedia Oracle Datenbank schreiben

9.1. Allgemeines

Mit dem Skriptmodul können Objekte in eine Oracle-Datenbank nach GeoMedia Spezifikationen via ODBC geschrieben werden. Das Modul unterstützt speziell die Oracle Spatial Option für räumliche Daten und die GeoMedia Metadaten in Oracle.

Der Modul beinhaltet folgende Besonderheiten:

  • Schreibt Daten nach Oracle Spatial.

  • Legt Tabellen für die Daten an.

  • Schreibt die notwendigen Definitionen für Oracle Spatial.

  • Schreibt die Geometrien für Oracle Spatial.

  • Schreibt den Spatial Index für die Geometrien von Oracle Spatial.

  • Schreibt die GEOMEDIA Definitionen in das GEOMEDIA Repository.

  • Die Datenbank kann nach dem Schreiben der Daten direkt mit Oracle Spatial weiterbearbeitet werden.

Der Modul wird mit:

|INCL \script\gmoraout.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

9.2. Abhängigkeiten von anderen Modulen

Der Modul GMORAOUT ist eine Erweiterung der Module DBOUT und ORAOUT . Alle in den Modulen DBOUT und ORAOUT beschriebenen Anteile gelten daher auch für das Modul GMORAOUT. Ziehen Sie deshalb die Dokumentation dieser Module bei.

9.3. Parametermap DB_PARAM

Folgende Parameter können in der Map DB_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
SOURCEoODBC-Source der Datenbank. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird.
USERoDatenbank User für die Verbindung mit der ODBC-Source. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird.
PASSWORDoDatenbank Password für die Verbindung mit der ODBC-Source. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird.
TRACEoON oder OFF, Default = OFF. Für jedes gelesene Objekt eine Zeile ausgeben.

9.4. Parametermap DBOUT_PARAM

Folgende Parameter können in der Map DBOUT_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
CREATE_TABLEoON, OFF,Default = OFF. Definiert ob die Tables definiert mit Record-Definitionen (siehe weiter unten) in der Datenbank erzeugt werden sollen. Mit OFF werden die Tabellen nicht erzeugt. Mit ON werden die Tabellen erzeugt und zwar zum Zeitpunkt, wenn das erste Objekt in die Tabelle geschrieben wird. Tables in die keine Objekte geschrieben werden, werden auch nicht erzeugt.
DELETE_OLDoON, OFF oder DROP, Default = OFF. Löscht bestehende Daten in Tables definiert mit Record-Definitionen (siehe weiter unten). Mit OFF werden keine Daten gelöscht. Mit ON werden die Daten über ein delete-sql-statement gelöscht. Mit DROP wird die Table und damit die Daten gelöscht. Zusammen mit DROP und dem Parameter CREATE_TABLE => ON werden die Tables gelöscht und wieder erzeugt.
BATCHoON oder OFF, Default = OFF. Mit OFF werden die sql-statements direkt auf der Datenbank ausgeführt. Mit OFF werden die sql-statements in ein Batchfile geschrieben. Mit dem Parameter BATCH_FILE wird das Batchfile definiert.
BATCH_OUTPUT_DIRo<directory>. Definiert ein Output-Directory für Batchfiles. Mit diesem Parameter kann das Output-Directory für Batchfiles definiert werden, falls der Parameter BATCH = ON definiert ist. Batchfiles können sein ein File mit SQL-Statementes oder in Kombination mit dem Oracle Output Modul die SQLLOADER-Bulkfiles. Ist dieser Parameter nicht gesetzt, so wird das Output-Directory aus einem eventuellen Input-File definiert in OPT.input bestimmt. Ist kein Input-File definiert, so ist das Output-Directory iltools\data\ics.sql.
BATCH_FILEo<file>. Definiert das Batchfile. Mit diesem Parameter kann das Batchfile definiert werden, falls der Parameter BATCH = ON definiert ist. Ist dieser Parameter nicht gesetzt, so wird das Batchfile aus einem eventuellen Input-File definiert in OPT.input mit der Endung .sql bestimmt. Ist kein Input-File definiert, so ist das Batchfile iltools\data\ics.sql als definiert. Das Batchfile beinhaltet SQL-Statements, um die transferierten Daten mittels SQL in eine Datenbank zu importieren.
SQLTRACEoON oder OFF, Default = OFF. Zeigt als sql-statements im Logfile an.
STATISTICSoON oder OFF, Default = OFF. Statistik anzeigen.
DATASEToON oder OFF, Default = OFF. Definiert, ob die in die Datenbank geschriebenen Daten als Datasets verwaltetet werden. Sie dazu mehr unter dem Kapitel Datasets. Der Wert ON hebt den Parameter DELETE_OLD auf.

9.5. Parametermap ORAOUT_PARAM

Folgende Parameter können in der Map ORAOUT_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
SQLLOADER_USEoON oder OFF, Default = OFF. Definiert ob das Schreiben der Daten in die Datenbank über die Oracle-Utility SQLLoader erfolgen soll. SQLLoader ermöglicht das schnelle Laden grosser Datenmengen in Oracle Spatial. Ist dieser Parameter auf ON gesetzt, so werden sogenannte Bulk-Files für SQLLoader erstellt. Ist der Parameter DBOUT_PARAM.BATCH auf OFF gesetzt, so werden die Bulk-Files erstellt und mit SQLLoader während des Transfers in die Datenbank gelesen. Ist der Parameter DBOUT_PARAM.BATCH auf ON gesetzt, so werden lediglich die Bulk-Files erstellt. Diese Variante ermöglicht das Erstellen von Bulk-Files zur späteren Weiterverarbeitung oder zur Abgabe an Dritte.
SQLLOADER_CMDo<command>. Default undefiniert. Ist der Parameter ORAOUT_PARAM.SQLLOADER_USE auf ON gesetzt muss dieser Parameter mit dem Command für die Utility SQLLoader gesetzt sein. Das zu setztende Command enstpricht dem Befehl, wie er auf einer Commandline für SQLLoader angwendet werden muss. Beispiel: sqlldr.exe userid=scott/tiger@ORACL. Anstatt des Commands kann im Parameter auch der Verweis auf eine Datei definiert werden, welche das Command beinhaltet.
SQLLOADER_DECIMALPOINTo<char>. Default , . Definiert den Dezimalpunkt für reelle Zahlen in den SQLLoader-Bulk-Files.
SQLLOADER_CONTINUECODEo<string>. Default # . Definiert die Fortsetzungszeichen in den SQLLoader-Bulk-Files.
SQLLOADER_FIELDSEPARATORo<string>. Default | . Definiert die Spaltentrennzeichen in den SQLLoader-Bulk-Files.
SPATIAL_STROKEo<real> oder OFF, Default = OFF. Stroke-Tolerance zur Auflösung von Kreisbögen in Liniensegmente. Als Stroke-Tolerance können dieselben Werte wie für die ICS-Methode ICS.STROKE verwendet werden (s.a. iG/Script Benutzer- und Referenzhandbuch). Mit OFF werden die Kreisbögen nicht aufgelöst.
SPATIAL_METAINSERToON oder OFF, Default = ON. Definiert ob die Metadaten für Oracle Spatial in die Tabelle user_sdo_geom_metadata geschrieben werden sollen.
SPATIAL_INDEXCREATEoON oder OFF, Default = ON. Definiert ob die Indexe für die Geometrie-Spalten für Oracle Spatial erzeugt werden sollen. Aufgrund der Tabelle und des Attributes wird automatisch ein Indexname erzeugt.
SPATIAL_INDEXDROPoON oder OFF, Default = ON. Definiert ob die Indexe für die Geometrie-Spalten vor dem Schreiben der Daten gelöscht werden sollen. Dies ermöglicht das schnellere Schreiben der Daten. Mit ORAOUT_PARAM.SPATIAL_INDEXCREATE => ON werden die Indizes nach dem Schreiben wieder angelegt.
SPATIAL_INDEXTYPEoQTREE oder RTREE, Default = RTREE. Definiert den Indextyp für die Geometrie-Spalten von Oracle Spatial.
SPATIAL_INDEXTABLESPACEo<tablespace> oder OFF, Default = OFF. Definiert den Tablespace für die Indizes der Geometrie-Spalten von Oracle Spatial.
SPATIAL_VALIDATEoON oder OFF, Default = OFF. Definiert ob Oracle Spatial SQL-Statements in das Logfile gesschrieben werden sollen. Mit diesen Statements können nachträglich unter Oracle Spatial die Geometrien validiert werden.
SPATIAL_SRIDo<integer> oder OFF, Default = OFF. Definiert die ORacle-SRID-Identifikation für die Geometrien. Jede Geometrie wird mit dem definierten SRID nach Oracle geschrieben.
SPATIAL_META_X o<min,max,resolution>. Default 0,1000000,0.001. Definiert für die Metadaten von Oracle Spatial die Ausdehnung und Auflösung der X-Koordinaten.
SPATIAL_META_Y o<min,max,resolution>. Default 0,1000000,0.001. Definiert für die Metadaten von Oracle Spatial die Ausdehnung und Auflösung der Y-Koordinaten.
SPATIAL_META_Z o<min,max,resolution>. Default 0,1000000,0.001. Definiert für die Metadaten von Oracle Spatial die Ausdehnung und Auflösung der Z-Koordinaten.

Für die Anwendung von Oracle Spatial und der Oracle-Utility SQLLoader ist die entsprechende Dokumentation von Oracle zu beachten.

9.6. Parametermap GMORAOUT_PARAM

Folgende Parameter können in der Map GMORAOUT_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
GDOSYS_PROCESSoON oder OFF, Default = OFF. Definiert ob die GeoMedia Metadaten verarbeitet werden sollen. Mit OFF werden die GeoMedia Metadaten nicht verarbeitet. Mit ON werden die GeoMedia Metadaten verarbeitet. Der Oracle User GDOSYS und die erforderlichen Tabellen für die GeoMedia Metadaten müssen vorhanden sein.
GDOSYS_DELETE oON oder OFF, Default = OFF. Definiert ob eventuell bestehende GeoMedia Metadaten zu den anzulegenden Objekten unter dem Oracle User GDOSYS vorgänig gelöscht werden sollen. Mit OFF werden die GeoMedia Metadaten nicht gelöscht. Mit ON werden die GeoMedia Metadaten gelöscht.
GDOSYS_CREATE oON oder OFF, Default = OFF. Definiert ob die GeoMedia Metadaten angelegt werden sollen. Mit OFF werden die GeoMedia Metadaten nicht angelegt. Mit ON werden die GeoMedia Metadaten angelegt.
GDOSYS_SOURCEo<source>,<user>,<password>. Default '' . Definiert die ODBC-Source mit User und Password für den User GDOSYS in der Oracle Datenbank.
GMADMIN_PROCESSoON oder OFF, Default = OFF. Das Modul GMADMIN ist eine Erweiterung der INTERGRAPH Schweiz zur Verwaltung von Oracle-Users für den Zugriff auf die Oracle Daten unter GeoMedia. Das Modul bedingt zusätzliche Definitionen unter Oracle. Dieser Parameter definiert ob die GMADMIN Definitionen verarbeitet werden sollen. Mit OFF werden die GMADMIN Definitionen nicht verarbeitet. Mit ON werden die GMADMIN Definitionen verarbeitet. Der Oracle User GMADMIN muss vorhanden sein.
GMADMIN_DELETE oON oder OFF, Default = OFF. Definiert ob eventuell bestehende GMADMIN Definitionen zu den anzulegenden Objekten vorgänig gelöscht werden sollen. Mit OFF werden die GMADMIN Definitionen nicht gelöscht. Mit ON werden die GMADMIN Definitionen gelöscht.
GMADMIN_CREATE oON oder OFF, Default = OFF. Definiert ob die GMADMIN Definitionen angelegt werden sollen. Mit OFF werden die GMADMIN Definitionen nicht angelegt. Mit ON werden die GMADMIN Definitionen angelegt.
GMADMIN_SOURCEo<source>,<user>,<password>. Default '' . Definiert die ODBC-Source mit User und Password für den User GMADMIN in der Oracle Datenbank.
PRIMARYKEY_PROCESSoON oder OFF, Default = OFF. GeoMedia benötigt für jedes Objekt einen Primary Key. Dieser Parameter definiert, ob dieser Primary Key pro Tabelle angelegt und beim Schreiben der Daten unterhalten werden soll. Mit OFF wird der Primary Key nicht verarbeitet. Mit ON wird der Primary Key verarbeitet.
PRIMARYKEY_ATTRIBUTEo<Attribute-Name>,<Type>. Default = GM_ID,INTEGER. Definiert den Attributenamen und den Typ für den GeoMedia Primärschlüssel.
PRIMARYKEY_INDEXDROPoON oder OFF, Default = OFF. Definiert, ob ein eventuell bestehender Index auf dem Primärschlüssel vor dem Schreiben der Daten gelöscht werden soll. Mit OFF wird der Index nicht gelöscht. Mit ON wird der Index gelöscht. Der Indexname wird vom Modul selber bestimmt.
PRIMARYKEY_INDEXCREATEoON oder OFF, Default = OFF. Definiert, ob für den Primäschlüssel nach dem Schreiben der Daten ein Index angelegt werden soll. Mit OFF wird der Index nicht angelegt. Mit ON wird der Index angelegt. Der Indexname wird vom Modul selber bestimmt.
PRIMARYKEY_SEQCREATEoON oder OFF, Default = OFF. Definiert ob für den Primärschlüssel eine Sequence angelegt werden soll. Mit OFF wird die Sequence nicht angelegt. Mit ON wird die Sequence angelegt. Der Sequencename wird vom Modul selber bestimmt. Ist die Sequence bereits vorhanden, so wird sie mit den aktuellen Werten aktualisiert.

Für die Anwendung von GeoMedia unter Oracle ist die enstprechende Dokumentation von INTERGRAPH zu beachten.

9.7. Objektmodell

Der Modul verlangt pro OUT-Objekt folgende Systemkomponenten:

Komponentereq/optBeschreibung
OUT.TABLE(s)rTabellenname in welche das OUT-Objekt geschrieben werden soll.
OUT.<Attribut>(o)oAttributname der Tabelle. Der Wert der Komponente beinhaltet den Wert für die Datenbank. Der Type des Wertes muss mit dem Type des Attributes in der Datenbank übereinstimmen. Es können beliebig viele Attribute definiert werden.

Dieses Objektmodell gilt für die Anwendung mit der Prozedur GMORAOUT_WRITE_OBJECT0. Die Tabellen mit den Attributen müssen in der Datenbank bereits bestehen oder in einer Konfiguration mit Prozeduren und Methoden vorgängig erzeugt werden. Falls die Datenbankstrukturen automatisiert mit dem Modul erstellt werden sollen, muss man das Kapitel mit den Record-Definitionen und die Prozedur GMORAOUT_WRITE_RECORD1 beachten.

9.8. Record Definitionen

Mit Record Definitionen können nicht nur Objekte in die Datenbank geschrieben werden, sondern auch Datenbank-Tabellen automatisiert in der Datenbank angelegt werden. Die Record Definitionen werden von der Prozedur GMORAOUT_WRITE_RECORD1 verarbeitet. Eine Record Definition sieht wie folgt aus.

MAP RECORD_<n>
   TABLE => <Table-Name>
   :
   <Attribute-Name> => <Attribute-Type>,<Attribute-Value>
   :
END_MAP

Die einzelnen Bestandteile einer Record-Definition sind:

RECORD_<n>

Eine Record Definition ist eine Map. Der Map-Name muss mit dem Prefix RECORD_ beginnen und eine eindeutige Nummer <n> für die Record Definition beinhalten.

TABLE

Diese Komponente ist obligatorisch und definiert die Datenbank-Tabelle.

<Table-Name>

Definiert als Wert der Komponente TABLE die Datenbank-Tabelle.

<Attribute-Name>

Definiert als Komponente einen Attribut-Namen innerhalb der Tabelle. Es können beliebig viele Attribute als Komponenten definiert werden.

<Attribute-Type>

Definiert den Attribut-Type in der Datenbank. Im Normalfall können der Datenbank bekannt Typen verwendet werden. Spezialtypen einer Datenbank werden eventuell nocht nicht unterstützt. Solche Spezialtypen werden bei Bedarf und auf Anfrage implementiert. Bei den Typen ist auf folgendes zu achten.

CHAR(<length>)

Stringtypen sind immer als CHAR mit der Länge <length> zu definieren. Je nach Datenbank wird der Typ vom Modul in einen der Datenbank bekannten Type umgewandelt z.B. Oracle als VARCHAR2.

NUMBER

Number-Typen ohne Argumente werden vom Modul als NUMBER(38,5) interpretiert.

MDSYS.SDO_GEOMETRY(<type>;<dimension>;<resolution>)

Oracle Spatial Geometrien müssen als Type MDSYS.SDO_GEOMETRY definiert werden. Dabei sind folgende weiteren Definitionen notwendig.

<type>

Type der Geometrie, einer der Werte: point|line|area|gmtext.

<dimension>

Dimension der Geometrie, einer der Werte: 2D|3D.

<resolution>

Real-Wert der Auflösung.

<Attribut-Value>

Definiert den Wert für das Attribut. Als Wert können Konstanten oder ICS-Variablen, die einen Wert beinhalten - z.B. IN.OBJID - verwendet werden.

Beispiel einer Record Definition.

MAP RECORD_1
   TABLE => Fixpunkte_LFP
   OBJID => CHAR(10),IN.OBJID
   ENTSTEHUNG => CHAR(10),IN.Entstehung.OBJID
   NUMMER => CHAR(12),IN.Nummer
   GEOMETRIE => MDSYS.SDO_GEOMETRY(point;3D;0.001),IN.Geometrie
   LAGEZUV_TXT => CHAR(4),IN.LageZuv_TXT
   HOEHEZUV_TXT => CHAR(4),IN.HoeheZuv_TXT
   BEGEHBARKEIT_TXT => CHAR(14),IN.Begehbarkeit_TXT
   SYMBOLORI => NUMBER,IN.SymbolOri
   ART_TXT => CHAR(4),IN.Art_TXT
   HERKUNFT => CHAR(30),IN.Herkunft
END_MAP

9.9. Datasets

Zur Verwaltung von Datasets in der Datenbank ist das analoge Kapitel des Modules DBOUT zu beachten.

9.10. Datenbank Modellgenerierung mit CONFIG_PARAM.GENERATE_MODEL

Falls basierend auf den Record-Definitionen vor einem Datentransfer das gesamte Datenbankmodell inklusive den notwendigen GEOMEDIA Definitionen erstellt werden soll, so ist der Parameter CONFIG_PARAM.GENERATE_MODEL auf ON zu setzen und das Script il2gmora.lib zu includen:

MAP CONFIG_PARAM
   GENERATE_MODEL => ON
END_MAP
:
|INCL \script\il2gmora\il2gmora.lib

Entsprechend den Record-Definitionen wird vor einem Datentransfer das Datenbankmodell angelegt, falls es nicht schon angelegt wurde.

In der Datenbank müssen die Tabellen des GEOMEDIA Repository bereits bestehen.

Um das Datenmodell inklusive den Daten und den Definitionen im GEOMEDIA Repository aus einer Datenbank zu löschen, steht folgende Konfiguration zur Verfügung:

ILTOOLS_DIR\system\script\il2gmora\gmoradelete.cfg

9.11. Exportierte Prozeduren und Methoden

Der Modul beinhaltet alle Prozeduren und Methoden wie der Modul DBOUT. Ziehen Sie deshalb die Dokumentation des Modules DBOUT bei.

Zusätzlich stellt der Modul GMORAOUT folgende Prozeduren und Methoden zur Verfügung.

ProzedurGMORAOUT_OPEN [][]
BeschreibungÖffnet eine Datenbank definiert mit DB_PARAM.SOURCE. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
GMORAOUT_OPEN
ProzedurGMORAOUT_WRITE_OBJECT0
BeschreibungSchreibt einen Objekt in die Datenbank. Das OUT-Objekt muss gemäss dem Objektmodell vorbereitet sein.
Beispiel
GMORAOUT_WRITE_OBJECT0
ProzedurGMORAOUT_WRITE_RECORD1 ! s recordname
Beschreibung

Schreibt ein Objekt definiert in <recordname> in die Datenbank. <recordname> ist der Name einer Record-Definition (siehe weiter oben). Je nach den gesetzten Parametern führt die Prozedur beim ersten Aufruf für eine Record-Definition folgende Aktionen auf der Datenbank aus:

  1. Die Tabelle oder deren Inhalt wird gelöscht, falls definiert durch Parameter.

  2. Die Tabelle wird erzeugt, falls definiert durch Parameter.

  3. Die Oracle Spatial Metadefinitionen werden generiert, falls definiert durch Parameter.

  4. Die GEOMEDIA Metadefinitionen werden generiert, falls definiert durch Parameter.

  5. Das Objekt wird in die Datenbank geschrieben.

Beispiel
... => GMORAOUT_WRITE_RECORD1,RECORD_1
ProzedurGMORAOUT_CLOSE [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
GMORAOUT_CLOSE
MethodeORACLE.GEOM_TO_SDO_GEOMETRY [g|li geom, i dimension][s sdo-geometry]
BeschreibungÜbersetzt eine ICS-Geometrie point,line oder area in eine Oracle-Spatial Geometrie als String. Als Input können auch Listen von Geometrien übergeben werden. Falls die Geometrien nicht übersetzt werden können, wird auf dem Stack ein NULL-String zurückgegeben.
Beispiel
IN.GEOM 2 ORACLE.GEOM_TO_SDO_GEOMETRY => VAR.SDO_GEOM
 

Folgende Konversionen werden durchgeführt:

point

to SDO-point

line

to SDO-line

area

to SDO-polygon

list of points

to SDO-multipoints

list of lines

to SDO-multilines

list of areas

to SDO-multipolygon

list of points and/or lines and/or areas

to SDO-collection

Für die Unterstützung des Produktes GeoMedia mit Oracle Spatial stehen folgende Prozeduren zur Verfügung.

MethodeORACLE.GEOM_TO_SDO_GEOMETRY_ORIENTEDPOINT ! [p Pos, r Rot, i Dimension] [s sdo_geometry]
Beschreibung

Erzeugt eine Oracle Spatial Geometry als oriented Point.

Beispiel
IN.Geometrie IN.Ori 2 
ORACLE.GEOM_TO_SDO_GEOMETRY_ORIENTEDPOINT => VAR.SDO_GEOM
MethodeORACLE.GEOM_TO_SDO_GEOMETRY_GEOMEDIA_POINT ! [p Pos, r Rot, i Dimension] [s sdo_geometry]
Beschreibung

Erzeugt eine Oracle Spatial Geometry als GeoMedia Point.

Beispiel
IN.Geometrie IN.Ori 2 
ORACLE.GEOM_TO_SDO_GEOMETRY_GEOMEDIA_POINT => VAR.SDO_GEOM
MethodeORACLE.GEOM_TO_SDO_GEOMETRY_GEOMEDIA_TEXT ! [s Text, p Pos, r Rot, i Hali, i Vali , i Dimension] [s sdo_geometry]
Beschreibung

Erzeugt eine Oracle Spatial Geometry als GeoMedia Text.

Beispiel
IN.Name IN.Geometrie IN.Ori IN.HAli IN.VAli 2 
ORACLE.GEOM_TO_SDO_GEOMETRY_GEOMEDIA_TEXT => VAR.SDO_GEOM
ProzedurGMORAOUT_POINT_CREATE3 ! p Pos, r Rot, i Dimension => IN.GMPoint
Beschreibung

Erzeugt eine Oracle Spatial Geometry als GeoMedia Point. Die Oracle Spatial Geometrie wird in IN.GMPoint abgelegt. IN.GMPoint kann in der Weiterverabietung genutzt werden, zum Beispiel in einer Record-Definition.

Beispiel
... => GMORAOUT_POINT_CREATE3,IN.Geometrie,IN.Ori,2
ProzedurGMORAOUT_TEXT_CREATE6 ! s Text, p Pos, r Rot, i Hali, i Vali , i Dimension => IN.GMText
Beschreibung

Erzeugt eine Oracle Spatial Geometry als GeoMedia Text. Die Oracle Spatial Geometrie wird in IN.GMText abgelegt. IN.GMText kann in der Weiterverabietung genutzt werden, zum Beispiel in einer Record-Definition.

Beispiel
... => GMORAOUT_TEXT_CREATE6,IN.Name,IN.Geometrie,
       IN.Ori,IN.HAli,IN.VAli,2

Neben diesen Prozeduren des Moduls stehen auch die Prozeduren und Methoden des Moduls DBOUT zur Verfügung. Diese Prozeduren und Methoden sind im Modul DBOUT beschrieben.

9.12. Skriptbeispiel

! Diese ICS Konfiguration liest ein INTERLIS FIle,
! erzeugt eine Tabelle für LFP's in der Datenbank
! inklusive den Definitionen des GEOMEDIA Repository
! und schreibt die LFP's in die Tabelle.

|LICENSE \license\iltoolspro.lic

MAP CONFIG_PARAM
   GENERATE_MODEL => ON
END_MAP

MAP USER_INPUT1
   DIALOG        => FILE
   MESSAGE       => 'Enter INTERLIS Input File'
   FILE_FILTER   => itf
   FILE_EXISTS   => TRUE
   OPT           => input
END_MAP

MAP USER_INPUT2
   DIALOG        => ODBC
   OPT           => output
END_MAP

MAP ILIN_PARAM
   INTERLIS_DEF => \models\Grunddatensatz.ili
   STATISTICS   => ON
   CALC_SURFACE => ON
   ENUM_TO_TEXT => ON
   TRACE        => OFF
END_MAP

MAP ILIN_TOPO
   DEFAULT => OFF
END_MAP

MAP DB_PARAM
   SOURCE     => '' ! ODBC-Source
   USER       => '' ! ODBC-User
   PASSWD     => '' ! ODBC-Password
   TRACE      => OFF
END_MAP

MAP DBOUT_PARAM
   STATISTICS      => ON
   CREATE_TABLE    => ON
   DELETE_OLD      => DROP
   BATCH           => OFF
END_MAP

MAP ORAOUT_PARAM
   SPATIAL_STROKE          => OFF ! OFF or a real Stroke-Tolerance
   SPATIAL_METAINSERT      => ON  ! ON|OFF Spatial Meta Insert
   SPATIAL_INDEXDROP       => ON  ! ON|OFF Spatial Index Drop 
                                  ! before Insert
   SPATIAL_INDEXCREATE     => ON  ! ON|OFF Spatial Index Create 
                                  ! after Insert
   SPATIAL_VALIDATE        => OFF ! ON|OFF Spatial Validate after Insert
   SPATIAL_META_X          => 0,1000000,0.001 ! x-min,x-max,x-tolerance
   SPATIAL_META_Y          => 0,1000000,0.001 ! y-min,y-max,y-tolerance
   SPATIAL_META_Z          => 0,1000000,0.001 ! z-min,z-max,z-tolerance
   SPATIAL_INDEXTABLESPACE => OFF
   SPATIAL_SRID            => OFF
END_MAP

MAP GMORAOUT_PARAM
   GDOSYS_PROCESS          => ON
   GDOSYS_DELETE           => ON
   GDOSYS_CREATE           => ON
   GDOSYS_SOURCE           => GDOSYS,GDOSYS,GDOSYS

   GMADMIN_PROCESS         => ON
   GMADMIN_DELETE          => ON
   GMADMIN_CREATE          => ON
   GMADMIN_SOURCE          => GMADMIN,GMADMIN,GMADMIN

   PRIMARYKEY_PROCESS      => ON
   PRIMARYKEY_ATTRIBUTE    => GM_ID,INTEGER
   PRIMARYKEY_INDEXDROP    => OFF
   PRIMARYKEY_INDEXCREATE  => OFF
   PRIMARYKEY_SEQCREATE    => ON
END_MAP

MAP RECORD_1
   TABLE => Fi_LFP
   OBJID => CHAR(10),IN.OBJID
   ENTSTEHUNG => CHAR(10),IN.Entstehung.OBJID
   NUMMER => CHAR(12),IN.Nummer
   GEOMETRIE => MDSYS.SDO_GEOMETRY(point;3D;0.001),IN.Geometrie
   GMTEXT => MDSYS.SDO_GEOMETRY(gmtext;2D;0.001),IN.GMText
   LAGEZUV_TXT => CHAR(4),IN.LageZuv_TXT
   HOEHEZUV_TXT => CHAR(4),IN.HoeheZuv_TXT
   BEGEHBARKEIT_TXT => CHAR(14),IN.Begehbarkeit_TXT
   SYMBOLORI => NUMBER,IN.SymbolOri
   ART_TXT => CHAR(4),IN.Art_TXT
   HERKUNFT => CHAR(30),IN.Herkunft
END_MAP

MAP INPUT_SOURCES
   I1 => ILTOPO,OPT.input
END_MAP

MAP INOUT
   I1                => IN.TOPIC,IN.TABLE
   I1,Fixpunkte,LFP  => PR_1,GMORAOUT_WRITE_RECORD1,RECORD_1
   I1,*              => OFF
END_MAP

MAP MACRO
   PR_1 => GMORAOUT_TEXT_CREATE6,IN.Nummer,IN.NumPos,IN.NumOri,IN.NumHAli,IN.NumVAli,2
END_MAP

|INCL \script\iltopo.mod
|INCL \script\gmoraout.mod
|INCL \script\il2gmora\il2gmora.lib
|INCL \script\run1.prg