Oracle PL/SQL --> DBMS_OUTPUT.PUT('XXX')

Hallo,

ich habe eine Oracle 9i Datenbank mit selbstgeschriebenen Prozeduren in PL/SQL. In diesen Prozeduren möchte ich ein paar Ausgaben machen und zwar mit dem Befehl DBMS_OUTPUT.PUT(‚XXX‘);
Wenn ich diese Prozedur in SQL PLUS ausführe, klappt alles super.

Nun habe ich aber eine Delphianwendung, die diese Prozeduren ausführen soll. Mit der Komponente „ADOStoredProc“ klappt das auch alles einwandfrei. Nun möchte ich aber die Ausgaben, die per DBMS_OUTPUT.PUT(‚XXX‘) ausgegeben wurden irgendwie mit Hilfe einer MsgBox in Delphi ausgeben. Ist das möglich und wenn ja WIE???

Gruß,
Christian

Hallo,

habe zwar keine Ahnung wovon ich jetzt rede, aber ich würde es einfach mal mit der Methode Open versuchen und die ADOStoredProc als DataSet an eine DataSource binden und deren Inhalt einfach mal in einem DBGrid anzeigen lassen - vielleicht hilft Dir das ja schon.

Nur mal so ein Schuss ins Blaue… :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

beim Schuß ins Blaue ist es geblieben… :frowning:
Hat sonst noch jemand Ideen?

Gruß,
Christian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

ich habe eine Oracle 9i Datenbank mit selbstgeschriebenen
Prozeduren in PL/SQL. In diesen Prozeduren möchte ich ein paar
Ausgaben machen und zwar mit dem Befehl
DBMS_OUTPUT.PUT(‚XXX‘);
Wenn ich diese Prozedur in SQL PLUS ausführe, klappt alles
super.

Das ist ein Problem: DBMS_OUTPUT schreibt zunächst in ein internes Puffer, das am Ende der Ausführung geleert wird. Normalerweise geht diese Ausgabe an die Standardausgabe stdout. Ich kenne mich nicht mit Delphi aus, aber du mußt diese irgendwie abgreifen.

Beachte dabei, daß du SET SERVEROUTPUT ON angeben mußt; geschieht das in deinem ADOStoredProc?

Wenn das nicht klappt, kannst du statt dessen die Ausgabe in eine Tabelle schreiben (und zwar mit Hilfe von autonomen Transaktionen, damit die Ausgabe erhalten bleibt, auch wenn du deine Haupttransaktion mit ROLLBACK zurückfährst).

Gruß

Sancho