PL-SQL: Einführung1

Aus Wikibooks


Mit der Oracle Funktion DBMS_OUTPUT.PUT_LINE können Zeichenketten ausgegeben werden, die nicht das Ergebnis einer SQL-Abfrage sind. Allerdings dürfen die Zeichenketten nicht länger als 255 Zeichen sein, sonst kommt es zu einem Abbruch. Wir werden noch eine Funktion vorstellen, die auch längere Zeichenketten ausgeben kann, aber vorerst müssen wir mit 255 Zeichen vorlieb nehmen. In der Oracle 10g Version sollte die Funktion auch mehr Zeichen ausgeben können. Als Einstieg wollen wir nun in SQL*PLUS unsere erste Ausgabe erhalten.

Vorher nicht vergessen in SQL*PLUS auf

SET SERVEROUTPUT ON

zu stellen. Das ist einer der häufigsten Dinge, die vergessen werden und einen beim Testen zur Verzweiflung bringen.

In PL*SQL würde unser Beispiel 'Hello World' ungefähr so aussehen

Listing: HelloWorld.SQL[Bearbeiten]

BEGIN
  DBMS_OUTPUT.PUT_LINE('Hello World') ;
END;

Das war doch gar nicht so schwer, oder?

Vorgehensweise in SQL*PLUS[Bearbeiten]

Es empfiehlt sich die Anlage einer Datei z.B. mit dem Namen helloworld.plsql:

  create or replace PROCEDURE helloworld is
  BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello World');
  END;
  /

Ein Aufruf von sqlplus nach dem Schema:

  sqlplus user/password @helloworld.plsql

kompiliert die Prozedur. Eventuelle Fehlermeldungen können in SQL*PLUS mit

  SQL> show err;

eingesehen werden.

Der Aufruf der Prozedur kann dann mit

  SQL> set serverout on;
  SQL> begin helloworld; end;
  SQL> /

erfolgen.