Als PDF Downloaden!

Werbung
Tipps & Tricks: Dezember 2008
Bereich:
SQL
Erstellung:
12/2008 MA
Versionsinfo:
10.1, 10.2, 11.1, 11.2
Letzte Überarbeitung:
06/2009 MA
Spool-file als HTML-Datei ausgeben
In diesem Monatstipp befassen wir uns mit der Erstellung eines Spool-file als HTML Dokument.
Mit dem SQL*Plus Befehl Set Markup HTML ON [SPOOL ON] lässt sich leicht ein Report bzw. ein ganzes
Spool-file als HTML-Datei ausgeben. Dies ist nützlich, falls Sie beispielsweise einen Report in eine
Webanwendung einbauen möchten.
Am besten schreiben Sie sich ein Skript, in welchem alle für Sie wichtigen Abfragen vorkommen. Auf jeden Fall
sollte am Anfang des Skripts der Befehl spool <Pfad\Dateiname> vorkommen. Dieser bewirkt die
Aufzeichnung Ihrer Abfragen (zum Beispiel: spool c:\TEMP\test.html). Anschließend müssen Sie noch die
HTML-Ausgabe einschalten. Das erreichen Sie durch den Markup-Befehl: Set Markup HTML [ON/OFF] (Gibt
die Markup-Sprache an)
SPOOL [ON/OFF] (Gibt an, ob diese auch für das Spool-file gilt)
Geben Sie nun mit dem Befehl prompt das Grundgerüst Ihrer HTML-Datei an.
Das kann zum Beispiel so aussehen:
prompt <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head><title> Spool-file als HTML</title></head>
Wenn sich ein SQL-Befehl wie in diesem Beispiel über mehrere Zeilen erstreckt, müssen Sie das durch ein "-" am
Ende einer jeden Zeile signalisieren.
Wenn Sie nun einen einfachen SELECT-Befehl absetzen und anschließend das Spool-file mit spool off
abschließen, wird dieser als HTML-Tabelle abgespeichert.
Das bisherige Skript sieht beispielsweise so aus:
spool c:\temp\test.html
set markup HTML ON
prompt <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head><title>SQL*Plus Ausgabe der EMP-Tabelle</title></head>
select * from emp;
select * from dept;
select * from salgrade;
spool off
set markup HTML OFF
Zu sehen ist nun eine einfache Tabelle ohne spezielle Formatierung:
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 1 von 5
Um das Ganze jetzt noch ein wenig aufzupeppen können wir noch Stylesheets einfügen. Platzieren Sie dazu
einfach in dem ersten prompt-Befehl zwischen </title> und </head>-Tag einen weiteren Zusatz:
<style type="text/css"><!-- a:link{color:#99CCFF;} a:visited{color:#6666FF;} .ora_tab{font-family:Arial; border-width:4px; border-color:#6666FF;border-style:groove; width:auto; }caption.ora_tab {text-align:left;font-size:20pt;font-family:Arial, Verdana, sans-serif;background-color: #dddddd;margin: 0px 0px 0px 0px;padding: 2px 10px 2px 10px;}td { border: 1px solid #d9d9d9; }th { border-color:#66CC66; background-color:#99CCFF;}--></style>
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 2 von 5
In diesem CSS-Zusatz können Sie alle möglichen Formatierungsangaben machen. Die genaue HTML-Syntax zu
erläutern würde den Rahmen des Monatstipps hier sprengen. (Der CSS-Einschub ist außerdem nicht zwingend
erforderlich).
Um die Angaben für alle weiteren Tabellen zu übernehmen müssen Sie in dem
set markup-Befehl eine Kleinigkeit erweitern.
Der Befehl lautet dann wie folgt:
set markup HTML ON TABLE class="ora_tab"
Bisher sieht das Ganze dann so aus:
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 3 von 5
Als besonderes "Schmankerl" können Sie sich noch eine Übersichtsliste einfügen mit entsprechenden Links zu
verschiedenen Tabellen.
Angenommen Sie haben eine HTML-Datei mit etwa 20 Tabellen vor sich, da wäre ein kleines Inhaltsverzeichnis
mit eingebauten Links doch ziemlich praktisch...
Realisieren können Sie das, indem Sie zunächst in dem prompt-Befehl eine Liste mit Links einbauen. Der Tag
dazu lautet <ul></ul>. Dieser erzeugt eine neue Liste, diese hat allerdings noch keine Einträge. Neue Einträge
erstellen Sie mit dem Tag <li></li>. Eine Liste sieht dann beispielsweise so aus:
<ul>
<li>1ster Eintrag</li>
<li>2ter Eintrag</li>
<li>3ter Eintrag</li>
</ul>
In unserem Fall müssen wir nach jeder Zeile noch ein "-" einfügen, da SQL*Plus die Eingabe nicht als ganzen
Befehl wahrnimmt.
Jetzt benötigt man nur noch die Syntax für den Hyperlink. Dieser lautet:
<a name="Linkname">Linktext</a> (Legt einen Link fest)
<a href="#Linkname">Linktext</a> (verweist auf den Link mit Namen "Linkname")
Um einer Tabelle einen Link zuweisen zu können, müssen Sie erst noch einen Tabellentitel erstellen, auf diesen
kann dann verwiesen werden.
Geben Sie einfach vor einem SELECT-Statement ttitle 'Titeltext mit entsprechendem Link' ein und über der
Tabelle erscheint eine Überschrift, auf welche man sich dann im Inhaltsverzeichnis beziehen kann.
Jetzt sieht das SQL-Skript so aus:
Tabelle EMP
Tabelle DEPT
Tabelle SALGRADE
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 4 von 5
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 5 von 5
Herunterladen