Das Programm sogdbunload entlädt Datenbanktabellen im SQL-, XML- oder CSV-Format in sequentielle Dateien. SQL- und CSV-Dateien können mit sogdbunload auch wieder eingelesen werden. Bei Dateien im CSV-Format ist es außerdem möglich, die Spaltennamen umzubenennen oder einzelne Spalten beim Laden in eine Datenbanktabelle durch umbenennen der Spalte in "-" auszuschließen.
sogdbunload -u
[-sql]
[-xml]
[-where Where-Bedingung]
[-order Order-By-Bedingung]
[-code Codierung]
[-log Protokolldatei]
[-con DbCon]
Tabelle Verzeichnis
sogdbunload -l
[-nobulk]
[-sql]
[-opt]
[-translen Transaktionslänge]
[-code Codierung]
[-delall]
[-del Where-Bedingung]
[-r]
[-hhupd]
[-log Protokolldatei]
[-tbrfrom Quellfirma -tbrto ZielFirma [-tbrcheck]]
[-con DbCon]
[-ignoredup]
[-threads n]
[-merge MergeSqlScript]
Tabelle Verzeichnis
sogdbunload -unloadall
[-sql]
[-xml]
[-Y]
[-prefix Prefix]
[-code Codierung]
[-log Protokolldatei]
[-list Tabellendatei]
[-con DbCon]
[-continue]
Verzeichnis
sogdbunload -loadall
[-nobulk]
[-sql]
[-Y]
[-opt]
[-translen Transaktionslänge]
[-code Codierung]
[-delall]
[-move]
[-r]
[-hhupd]
[-log Protokolldatei]
[-tbrfrom Quellfirma -tbrto ZielFirma [-tbrcheck]]
[-con DbCon]
[-threads n]
Verzeichnis
sogdbunload -tabstoupd Tabelle[,Tabelle]...
[-askuser]
[-delcon "SQL-Bedingung"]
[-con DbCon]
hhupd
Schlüsselwort zum Entladen einer Datenbanktabelle.
Schlüsselwort zum Laden einer Datenbanktabelle.
Schlüsselwort zum Entladen aller Datenbanktabellen. Dateien werden im angegebenen Zielverzeichnis gespeichert.
Schlüsselwort zum Laden aller Unload-Dateien aus einem Verzeichnis. Über die Konifguration "SOGDbUnload_cfg.xml" können Tabellen konfiguriert werden, die nicht automatisch geladen werden. (nur wenn die Dateinamen der Unload-Dateien dem Format "unload_tabelle" entsprechen.)
Durch Einsatz der BulkCopy Methode des SQL Servers kann das Laden von Tabellen massiv berschleunigt werden. Mit der Option "-nobulk" kann diese Methode abgeschaltet werden. Die Firmenmodifikation ist mit der BulkCopy Methode nicht kompatibel.
Schlüsselwort zum Laden oder Entladen einer Datenbanktabelle im SQL-Format.
Schlüsselwort zum Entladen einer Datenbanktabelle im XML-Format.
Achtung: XML-Format dient nur der Übergabe an Fremdsysteme, und kann zur Zeit nicht wieder geladen werden.
Auftretende Meldungen zur Bestätigung durch den Benutzer werden nicht ausgegeben.
Zur Optimierung der Geschwindigkeit erfolgt keine Ermittlung der Datensatzanzahl und es wird nur eine eingeschränkte Fortschrittsanzeige verwendet. Ist nur in Verbindung mit "CSV" möglich.
CultureInfo, die zum laden oder entladen benutzt werden soll (z.B. "de-DE" oder "en-US") . An Stelle der Kultur kann auch der Parameter "-lang" verwendet werden
Angabe eine SOG Entladesprache. Aus der Sprachangabe wird eine Kultur ermittelt, und diese verwendet. (z.B. "ger" oder "eng"). Initialwert="eng"
Setzt den angegeben Prefix vor jede entladene Datei (Nur bei Parameter "-unloadall" wirksam). Initialwert="unload"
-translen Transaktionslänge (Optional)
Bestimmt die Anzahl der Datensätze, die pro Transaktion in die Datenbank geladen werden. Standardwert: 100
Optionale Where-Bedingung (ohne "where" am Beginn der Bedingung angeben).
Optionale Order-By-Bedingung (ohne "order by" am Beginn der Bedingung angeben).
Vor Start des Ladevorgangs werden alle vorhandenen Datensätze in der Tabelle gelöscht. Ist nur in Verbindung mit "CSV" möglich.
Vor Start des Ladevorgangs werden alle vorhandenen Datensätze in der Tabelle gelöscht die der Where Klausel entsprechen (ohne "where" am Beginn der Bedingung angeben). Ist nur in Verbindung mit "CSV" möglich.
Ein bereits vorhandener Satz wird auf Basis des Key-1 vorher gelöscht. Ist nur in Verbindung mit "CSV" möglich.
Beim Laden der Tabelle wird als Wert des Feldes "hhupd" der aktuelle Zeitstempel verwendet. Ist nur in Verbindung mit "CSV" möglich.
Bei Angabe dieser Option werden alle verarbeiteten Quelldateien in das Verzeichnis "Quellverzeichnis_done" verschoben.
Protokolldatei, in der zusätzlich alle Konsolenausgaben protokolliert werden.
Datei mit Namen der Tabellen, die entladen werden sollen. Die einzelnen zu entladenden Tabellen müssen hier zeilenweise angegeben werden.
Ermittelt veränderte Datensätze in einer Liste von Tabellen, auf Basis eines hhupd-Datums, und erzeugt ein neues DBUpdate-Script im DBUpdate-Verzeichnis mit insert-Anweisungen für diese Datensätze.
Mit "-delcon" kann eine SQL-Bedingung vereinbart werden, die zu löschende Datensätze zusätzlich erfüllen müssen, damit sie tatsächlich gelöscht werden!
Soll während des Datenladens eine Firmenmodifikation durchgeführt werden, so kann hier die Quellfirma angegeben werden. Wird zusätzlich die Option "-tbrcheck" angegeben, werden nur Datensätze geladen, die der Quellfirma entsprechen.
Soll während des Datenladens eine Firmenmodifikation durchgeführt werden, so kann hier die Zielfirma angegeben werden.
Soll während des Datenladens eine Firmenmodifikation durchgeführt werden, so bewirkt diese Option, dass nur Daten geladen werden, die der Quellfirma entsprechen.
Datenbankverbindung. Geben Sie hier das Kürzel für die zu verwendende Datenbankverbindung an.
Wird z.B. "help" angegeben, muss die Datenbankverbindung über die Variable "OleDbHelp" konfiguriert worden sein.
Angabe einer gewünschten Anzahl von gleichzeitigen, parallelen Einfügeoperationen. Durch Angabe dieser Option kann ein Ladevorgang erheblich beschleunigt werden. 99: Anzahl Prozessoren * 4
Beim Entladen einer ganzen Datenbank werden nur die Tabellen berücksichtigt, die nicht bereits zuvor in das Zielverzeichnis entladen wurden.
Beim Laden einer CSV-Datei werden Duplikatsfehler ignoriert und nicht protokolliert. Nur die zusätzlich in der CSV Datei enthaltenen Datensätze werden geladen.
Beim Laden einer CSV-Datei wird der Inhalt der CSV in eine Temp-Table Namens #unloadtemp geladen, und anschließend über das hier angegebene Script in die Zieltabelle überführt. Das Script sollte eine Merge-Anweisung enthalten, die die Temptable als Quelle und die Zieltabelle als Ziel verwendet. Ein Beispiel für ein solches Script finden Sie unter sql\sog\MergeOptionen.sql.
Name der zu ladenden oder zu entladenden Tabelle. Beim Laden im SQL Format wird der angegebenen Tabellenname ignoriert!
Ziel-/Quellverzeichnis.
Mit Hilfe der Optionen "-tbrfrom", "-tbrto" und "-tbrcheck" kann während des Ladens die interne Firmennummer der Datensätze modifiziert werden.
Um zu erkennen, welche Daten verändert werden müssen, werden die XML-Datenbeschreibungen der Tabellen geladen.
Es können also nur Tabellen modifiziert werden, zu denen eine solchen Datenbeschreibung existiert.
Wird die Option "-tbrcheck" verwendet, werden nur Datensätze geladen, die der Quellfirma entsprechen. Daten anderer Firmen, oder firmenübergreifende Daten werden nicht geladen.
Entladen einer Datenbanktabelle im XML-Format
Beim Entladen einer Datenbanktabelle als XML-Datei liegt diese nach dem Entladen in folgender Form vor:
<Table Name="#Tabellenname#">
<Schema>
<Field Name="#Feldname#">#Datentyp#</Field>
...
</Schema>
<Dataset>
<Field Name="#Feldname#">#Wert des Datenfeldes#</Field>
...
</Dataset>
...
</Table>
XML-Format kann nicht wieder in die Datenbank geladen werden. Es dient nur der Übergabe an Fremdsysteme
BLOBs - Große Datenbankobjekte
Große Datenbankobjekte, sogenannte BLOBs können von SOG ERP (VACOS) zur Speicherung von Dateien in der Datenbank verwendet werden.
Ein BLOB kann dabei theoretisch bis zu 2 GB groß werden.
SOGDbUnload unterstützt BLOBs im CSV Format. Dazu wird die geschriebene CSV-Datei um eine spezielle SOG-Spezifische Syntax erweitert, in der die im Datensatz enthaltenen BLOBs in binärem Base64-Format in die Ausgabe geschrieben werden.
Auch das Laden einer solchen CSV-Datei ist möglich. Dabei werden die BLOBs wieder rekonstruiert, geprüft, und mit in die Datenbank eingefügt.
Beispiel für einen solchen Datensatz mit einem enthaltenen BLOB, hier am Beispiel der SOG ERP (VACOS) Tabelle "dbfiles":
key_1,folder,filename,extension,data,file_owner,read_right,write_right,child_read_right,child_write_right,len,version,vuuid,isdir,cmpr,last_write_utc,hhupd,blob_id,co_stat,co_user
string,string,string,string,blob,string,string,string,string,string,decimal,int16,string,int16,int16,string,string,string,int16,string
$BLOBSTART data 4 9 8AA99B1F439FF71293E95357BAC6FD94
$BLOBDATA YWJjZGVmZ2hp
$BLOBEND
/temp/x.txt,/temp,x,txt,BLOB,stolle,,,,,9,0,e5391318-6aae-4e57-a470-7eb4624b6c98,0,0,20090918123808,20090918123816,,1,soghh/stolle
Die Felder im Datensatz "$BLOBSTART" haben folgende Bedeutung:
Name des Datenfeldes (Hier: data)
Spaltennummer (0=1.Spalte) (Hier: 4)
Länge des Blob in Byte (Hier: 9)
MD5-Prüfsumme über die Daten des Blob (Hier: 8AA99B1F439FF71293E95357BAC6FD94)