1. Home
  2. MapEdit Tools
  3. SQLite aus Oracle Fachschale erstellen

SQLite aus Oracle Fachschale erstellen

Ora2SQLite

Der Einsatz einer SQLite Datenbank kann für einen Auskunftsarbeitsplatz genutzt werden, der Offline verwendet wird, also wo keine Verbindung zur Oracle-Datenbank besteht.

Es besteht die Möglichkeit, aus einem Map Dokument (Fachschale) in Oracle eine SQLite Datenbank zu erstellen und diese Datenbank in MapEdit als Datenbank-verbindung zu nutzen. Dann wird parallel auch die MapGuide Karten an die SQLite Datenbank angebunden. Die Änderung des Datenbankproviders der MapGuide Karten erfolgt mit Hilfe des MapGuide Connection Switcher. Der MapGuide Connection Switcher ist ein Tool von MuM und kann als Plugin Kommando in den Ribbons eingerichtet werden.

Nach der Updateinstallation finden Sie das Tool auf dem MapEdit Server in dem Verzeichnis

C:\Program Files (x86)\MuM MapEdit\Ora2SQLite

Darin starten Sie das Tool über die Mum.Geo.Ora2SQLite.exe:

Ora2SQLite

Es erfolgt als erstes ein Connect auf die Oracle Datenbank. Geben Sie die passenden Parameter Ihrer Umgebung ein. Es werden alle Tabellen des Oracle-Dokumentes angezeigt und diese können alle über die Pfeilbuttons übernommen werden >>. Über die Pfeiltaste < können einzelne Tabellen wieder aus dem Export herausgenommen werden. Es wird ein Logfile geschrieben – bitte prüfen Sie, dass das Verzeichnis für die Log-Datei nicht schreibgeschützt ist.
Geben Sie einen gültigen Pfad und den Namen der SQLite Datenbank an.

Über Create starten Sie den Export und nach erfolgreicher Erstellung kommt die Meldung Done.

Batchmodus

Batchmodus: Das Programm kann auch im Batchmodus SQLite Dateien erstellen. Dazu benötigen Sie in der Batch-Datei folgende Parameter (die Batchdatei wird für dieses Beispiel in dem Installationsverzeichnis gespeichert C:\Program Files (x86)\MuM MapEdit\Ora2SQLite:
Mum.Geo.Ora2SQLite.exe Username=OSNAB;Password=avs;Service=ORCL;Filename=c:\test1.db
Mit dem Button CreateExportTables.dat werden die momentan im Fenster gewählten Tabellen in die Datei ExportTables.dat gespeichert. Diese Datei kann man kopieren und umbenennen. Beim Starten im Batchmodus kann diese Datei als Parameter mit angeben werden. Der Parametername ist „ExportTablesFilename“.
Beispiel: Mum.Geo.Ora2SQLite.exe Username=OSNAB;Password=avs;Service=micha;Filename=c:\test22.db;ExportTablesFilename=C:Test\ExportTablesOSNAB.dat

Pre / Post Script

Pre / Post Script: Es kann ein Skript vor und nach dem Export angegeben werden, das bestimmte Änderungen/Anpassungen auf der Datenbank ausführt:

Pre/Post Script

In die Kommadozeile können SQL Anweisungen einfügen werden, um Nachbearbeitungen vorzunehmen. Kommentare können angegeben werden in dem die Zeile mit „–“ beginnt.
Nach einem SQL oder einem SQL Block muss in der nächsten Zeile stehen –EXECUTE– ansonsten wird der SQL nicht ausfgeführt. Steht im SQL eine CREATE VIEW xy AS Anweisung, dann wird das Anlegen des Views im normalen Programmablauf unterdrückt (siehe Create Live Views). Diese Option kann auch in der Kommandozeilen Version angegeben werden, mit dem Befehl ScriptFilename=Dateiname;

Beispiel einer Kommandozeile, über die der Export gestartet werden kann und somit auch als Batchdatei ein täglicher Task eingerichtet wird:

Mum.Geo.Ora2SQLite.exe Username=OSNAB;Password=avs;Service=topo;Filename=c:test22.db;ExportTablesFilename=C:Sandbox\Mum.Geo\Mum.Geo.Ora2SQLite\bin\Debug\ExportTablesOSNAB.dat;MapEditOffline=True;ScriptFilename=C:\test.sql;

Create Audit Trigger And Tables

Create Audit Trigger And Tables: Der Schalter erzeugt Tabellen und Trigger die es ermöglichen alle Änderungen an den Daten nachzuvollziehen. Dies wird später für das Rück-Synchronisieren mit dem Orginal Datenbestand benötigt.

Die Funktion kann auch per Kommandozeile genutzt werden:
CreateAudit=True;

Beispiel:
Mum.Geo.Ora2SQLite.exe Username=OSNAB;Password=avs;Service=topo;Filename=c:\test22.db;ExportTablesFilename=C:\Sandbox\Mum.Geo\Mum.Geo.Ora2SQLite\bin\Debug\ExportTablesOSNAB.dat;CreateAudit=True;CreateLiveViews=True;ScriptFilename=C:\test.sql;

Create Live Views

Wenn man diesen aktiviert, versucht das Programm aus der Oralce Definition der Views in SQLite echte Views anzulegen. Das ist nur in einfachen Fällen erfolgreich, weswegen ein händisches Nacharbeiten mit Hilfe eines Scriptes notwendig ist, wenn man echte Views benötigt. Wenn diese Option ausgeschalten ist, werden aus den Oracle Views Tabellen erzeugt. D.h. die Daten sind redundant, aber das Anlegen geschieht ohne Probleme. Dies ist natürlich nur sinnvoll, wenn man rein lesend auf die Daten zugreift. Wenn man Daten in der SQLite Datei über MapEdit verändern will, dann muss man „Create Live Views“ einschalten und die Views manuell (bzw. via Script) anlegen.

Diese Option kann auch in der Kommandozeilen Version angegeben werden mit dem Befehl CreateLiveViews=True;

Beispiel:
Mum.Geo.Ora2SQLite.exe Username=OSNAB;Password=avs;Service=topo;Filename=c:\test22.db;ExportTablesFilename=C:\Sandbox\Mum.Geo\Mum.Geo.Ora2SQLite\bin\Debug\ExportTablesOSNAB.dat;MapEditOffline=True;ScriptFilename=C:\test.sql;CreateLiveViews=True;

Programmabbruch

Die SQLite Datenbank wird zuerst als *.tmp datei erzeugt und am Ende wenn das Programm komplett durchgelaufen ist umbenannt.
Damit ist garantiert das die Datei nur dann vorhanden wenn es wirklich komplett durch gelaufen ist.

Im Falle eines Fehlers wird im Log File ein FATAL ERROR gemeldet. (Die Meldung kommt nicht wenn das Programm abgebrochen wurde etc). Außerdem wird keine Datenbank erzeugt wenn das Programm aus irgendwelchen anderen Gründen beendet wird. z.B. wenn der Rechner runtergefahren wird oder das Programm mit dem Taskmanager abgeschossen wurde etc.

Im Log File wird ein FATAL ERROR gemeldet. (Die meldung kommt nicht wenn das programm abgeschossen wird etc)

Ausserdem wird keine Datenbank erzeugt wenn das Programm aus irgend welchen anderen gruenden beendet wird.
z.B. wenn der Rechner runtergefahren wird oder das programm mit dem Task manager abgeschossen wird etc.

Im Log File wird ein FATAL ERROR gemeldet. (Die meldung kommt nicht wenn das programm abgeschossen wird etc)

Das Programm bricht von sich aus ab wenn eine der folgenden ORA Meldungen auftritt und es wird keine SQLite Datenbank erzeugt:

ORA-03114: not connected to ORACLE
ORA-01089: immediate shutdown or close in progress – no operations are permitted
ORA-01034: oracle not available
ORA-00603: ORACLE server session terminated by fatal error
ORA-12154: TNS:could not resolve the connect identifier specified (#1)
ORA-03113: end-of-file on communication channel

Updated on November 20, 2020