Serveroutput mit DMBS_OUTPUT unter Oracle

March 14th, 2009 by Dominik Rockenschaub Categories: Blog, Web Development No Responses

Serveroutput

Um diverse andere Ausgaben mithilfe einer Prozedur zu erstellen, gibt es die Funktion DBMS_OUTPUT.PUT_LINE. Damit diese voll funktionsfähig ist, kann es je nach Konfiguration des DBMS vorkommen, dass wir den Output erst einschalten müssen.

Mit dem folgenden Befehl wird das DBMS_OUTPUT aktiviert:

DBMS_OUTPUT.ENABLE;

Sollte danach noch immer kein Output erscheinen, muss global noch der Serveroutput des DBMS aktiviert werden:

SET SERVEROUTPUT ON;

Eine fertige Prozedur könnte nun so aussehen:

CREATE OR REPLACE PROCEDURE TEST_DBMS_OUTPUT AS
BEGIN
    DBMS_OUTPUT.DISABLED;
    DBMS_OUTPUT.PUT_LINE('DBMS Output deaktiviert');

    DBMS_OUTPUT.ENABLE;
    DBMS_OUTPUT.PUT_LINE('DBMS Output aktiviert');
END;

Der Aufruf:

SET SERVEROUTPUT ON;
CALL TEST_DBMS_OUTPUT();

Output:

"DBMS Output aktiviert"

Stringverkettung

Wie kann man nun verschiedene Strings/Zeichenketten/Variablen/etc.. gemeinsam ausgeben. Dafür wird der
||

Operator verwendet.

Das würde dann z.b. so aussehen:

DBMS_OUTPUT.PUT_LINE(variable1 || ' +  ' || variable2 || ' = ' || variable1+variable2)

Hoffe das hilft manch anderem auch weiter.

Technische Info:

Folgende Erklärung bezieht sich auf eine Oracle 10g Datenbank. Der verwendete SQL Client ist SQLDeveloper V.1.5.4.