|
Ordner und Dateien: Das virtuelle Dateisystem der Datenbank nutzen
Hintergrund
In der letzten Ausgabe haben Sie das virtuelle Dateisystem der
Oracle-Datenbank kennengelernt. Es wurde zusammen mit der XML DB,
also der XML-Technologie
in der Oracle-Datenbank eingeführt und wird daher häufig als
XML DB Repository
bezeichnet. Auch hier wird es von nun an so genannt.
Es können jedoch nicht nur XML-Dokumente, sondern alle möglichen
Dateitypen gespeichert werden.
Nützlich ist es überall dort, wo eine Hierarchie von Verzeichnissen und Dateien
(eben wie in einem Dateisystem) benötigt wird, die Inhalte selbst jedoch in der
Datenbank gespeichert werden sollen. Natürlich kann man dies auch mit eigenen
Tabellen selbst erstellen, das XML DB Repository stellt die Funktionalität
jedoch fertig und sofort nutzbar bereit. In der letzten Ausgabe haben Sie
erfahren, wie Sie das virtuelle Dateisystem aufsetzen, die Verzeichnisstruktur
auslesen und die Inhalte von Dateien anzeigen können. Heute erfahren Sie, wie
Sie aus einer Application Express-Oberfläche eine Datei speichern, so dass
diese zum Abruf per FTP bereitsteht. Daneben stellen wir Funktionen zum
Verlinken oder Umbenennen von Dateien vor.
Dateien hochladen
Ausgangspunkt ist das Ergebnis der letzten Ausgabe: In der Anwendungsseite
ist links die Verzeichnisstruktur als Baum zu sehen; rechts sind die im
ausgewählten Verzeichnis vorhandenen Dateien aufgelistet.
Abbildung 1: Ausgangspunkt: Verzeichnisstruktur und Dateien
Fügen Sie der Seite nun ein neues Element vom Typ Datei hochladen
( PX_NEWFILE) und eine Schaltfläche
zum Absenden hinzu. Achten Sie beim Erstellen
der Schaltfläche darauf, dass die Seite weitergeleitet und nicht
bloß umgeleitet wird. Die Seite sollte danach in etwa wie folgt
aussehen:
Abbildung 2: Anwendungsseite mit Möglichkeit zum Datei-Upload
Mit Klick auf die Schaltfläche Go wird
die Datei nun hochgeladen;
im Gegensatz zu früheren Tipps, in welchen die Datei in eine
Tabelle übernommen wurde wird Sie dieses Mal ins XML DB Repository
kopiert (achten Sie auf den Aufruf von DBMS_XDB.CREATERESOURCE).
Hinterlegen Sie folgenden OnSubmit -Prozess
vom Typ PL/SQL.
Navigieren Sie nun in den Ordner /public/APEX-Test und
laden Sie eine
Datei hoch. Wenn Sie anschließend mit einem FTP-Client kontrollieren,
werden Sie feststellen, dass die Datei nun auch per FTP heruntergeladen
werden kann.
DBMS_XDB.CREATERESOURCE kann übrigens nicht nur
BLOB
als Parameter entgegennehmen, sondern auch VARCHAR2,
CLOB oder XMLTYPE.
Somit ist es auch möglich, anhand von Tabellen einen Text zusammenzustellen
und diesen ins XML DB Repository zu speichern. So können Datenbankinhalte
auf einfachstem Weg bereitgestellt werden - lassen Sie mal folgendes
Skript im SQL Workshop laufen:
Laden Sie nun mit einem FTP-Client die Datei
/public/APEX-Test/ALL_TABLES.txt
herunter und schauen Sie mit einem Texteditor hinein. Sie sollten in etwa
folgende Inhalte darin finden:
Exkurs: XML
Speziell für XML bietet das XML DB Repository noch weitere, fortgeschrittene
Möglichkeiten an: Sie können es ganz hervorragend zum Datenaustausch verwenden.
Ein Beispiel: Legen Sie im SQL Workshop folgende View auf
die Tabellen EMP und DEPT an:
Lassen Sie anschließend folgenden PL/SQL-Block laufen.
Achten Sie auf die Parameter für die Prozedur
DBMS_XDB.CREATERESOURCE . Die
XML-Daten aus der View werden nicht direkt, sondern als Pointer
(REF)
übergeben.
Schauen Sie anschließend per FTP (oder mit Ihrer Anwendung) in den
Ordner /public/dept-xml hinein. Sie sollten dort vier Dateien
finden. Wenn Sie sich die Dateien jedoch ansehen,
finden Sie darin eine XML-Repräsentation der Tabellen EMP
und DEPT.
Die Daten werden dabei on-the-fly generiert -
Probieren Sie es aus:
Ändern Sie einige Daten und schauen Sie sich die Daten erneut an ...
Abbildung 3: XML-Datenaustauch mit dem XML DB Repository
Weitere Funktionen
Daran ist sehr gut erkennbar: Die Einsatzmöglichkeiten für das
XML DB Repository sind vielseitig: Neben der Nutzung als Container
für Dateien können auch Datenbankinhalte dort abgelegt und für
FTP-Zugriffe verfügbar gemacht werden. Neben CREATERESOURCE
kennt das Package
DBMS_XDB noch einige weitere, wichtige Funktionen und Prozeduren:
Spielen Sie ruhig noch ein wenig mit dem XML DB Repository.
Mit den genannten Funktionen ist es ein Leichtes, die Anwendung um
Möglichkeiten zum Umbenennen oder Löschen von Dateien zu erweitern.
Mehr Informationen zum Repository finden Sie hier:
Zurück zur Community-Seite
|