|
DBMS_OUTPUT mit Application Express nutzen
Vielfach wird in bereits vorhandenen PL/SQL-Prozeduren, Funktionen und -Packages
DBMS_OUTPUT.PUT_LINE verwendet, um Meldungen auszugeben. In SQL*Plus werden
diese angezeigt, wenn man die Bildschirmausgabe vor dem Starten der Prozedur
mit set serveroutput on aktiviert.
Doch was ist, wenn man diesen PL/SQL-Code aus einem Application Express-Prozeß
heraus aufruft? Schließlich kann man in Application Express kein "set serveroutput on"
absetzen - das funktioniert nur in SQL*Plus.. Aber
Sie können die Meldungen dennoch in APEX sichtbar machen - hier sehen Sie, wie:
Spielen Sie über den SQL Workshop oder SQL*Plus folgende Prozedur ein; Sie
können natürlich auch eine vorhandene nehmen, von der Sie wissen, dass
sie DBMS_OUTPUT verwendet.
In SQL*Plus sieht das Ergebnis wie folgt aus:
Nun sei ein Application Express-Prozeß denkbar, der diese Prozedur verwendet;
ein onSubmit-Prozeß könnte die Prozedur bei Klick auf die Schaltfläche Ausführen
wie folgt nutzen:
Auf diese Art und Weise haben Sie noch keinen Zugang zu den mit DBMS_OUTPUT
erzeugten Meldungen. Dazu muss der Prozesscode ein wenig geändert werden. Vorher
sollten Sie sich jedoch selbst die Frage beantworten, was Sie mit den Meldungen
machen wollen - denkbar ist vieles ...
- Speichern in einer eigenen Tabelle und Darstellung mit einem Bericht
- Ausgabe als APEX Debugging-Meldungen mit wwv_flow.debug
- Speichern in einer APEX Collection (keine persitente Tabelle) und Ausgabe als Bericht
Sollen die Meldungen als APEX Debugging-Meldungen ausgegeben werden (Variante 2), müsste der
Prozeß wie folgt aussehen.
Wenn Sie nun in der Developer-Toolbar den Debug-Modus einschalten ...
Abbildung 1: Debug-Modus einschalten
... dann sehen Sie die mit DBMS_OUTPUT erzeugten Meldungen wie folgt.
Abbildung 2: Im Debug-Modus angezeigte Meldungen
Man muss die Prozeduren also nicht umschreiben; sie können die
Aufrufe von DBMS_OUTPUT auch in APEX nutzen.
Zurück zur Community-Seite
|