| Zurück | Startseite | Weiter |

PL/SQL Starter Guide

Architekturansatz

PL/SQL ist eine in Oracle integrierte, prozedurale Programmiersprache. Sie wird verwendet um eine Zugriffschicht zwischen Anwendung und Tabellenstrukur zu realisieren.

Organisation des Quellcodes

Der Quellcode wird in Prozeduren, Functionen und Packages organisiert. Packages selber können nicht wieder in Packages organisiert sein.

Packages

Packages bestehen aus einer Package-Deklaration und einer Package-Implementation.
Die Package-Deklaration ist eine Schnittstelle, die nach außen veröffentlicht wird. In ihr sind die Signaturen der zu veröffentlichen Prozeduren und Funktionen definiert.
Die Package-Implementation beinhaltet den ablauffähigen Code innerhalb von Prozeduren und Funktionen.
Hier ein Beispiel für eine Package-Deklaration.
create or replace package TESTMODELPKG is
  procedure initTest;
  procedure testCreateModel;
end testmodelpkg;
        
Bei der Package-Deklaration ist zu beachten, dass sie KEIN "begin" als Schlüsselwort verwendet.
Ein weiterer Stolperstein sind parameterlose Funktionen und Prozeduren. Sie besitzen KEINE Klammern um die leere Menge der Parameter.
Es ist zu empfehlen immer die Klausel "create or replace ..." zu verwenden. Nur bei speziellen Anforderungen beim Neuaufbau seiner Package-Struktur sollte man davon abweichen.
Hinter dem Package-Namen steht immer das Schlüsselwort "is". Es gibt zwar auch ein syntaktisch Substitut, auf welches ich hier nicht weiter eingehe.
Hier ein Beispiel für eine Package-Implementation.
create or replace package body TESTMODELPKG is

  procedure initTest as
  begin
    delete from modell;
    commit;
  end initTest;

  procedure testCreateModel as
    modell_id number;
    actual_name varchar2(4000);
    actual_derivedFrom number;
    expected_name varchar2(4000);
    expected_derivedFrom number;
  begin
    initTest;
    expected_name := 'Test';
    expected_derivedFrom := null;
    modell_id := wfms.modelpkg.createModel(expected_name, expected_derivedFrom);
    select name into actual_name from modell where id = modell_id;
    select derivedFrom into actual_derivedFrom from modell where id = modell_id;
  end testCreateModel;

end testmodelpkg;
        
Bei der Package-Implementation ist zu beachten, dass sie ebenfalls KEIN "begin" als Schlüsselwort verwendet.
Auch bei der Package-Implementation besitzen parameterlose Funktionen und Prozeduren KEINE Klammern um die leere Menge der Parameter.
Es ist zu empfehlen immer die Klausel "create or replace ..." zu verwenden. Nur bei speziellen Anforderungen beim Neuaufbau seiner Package-Struktur sollte man davon abweichen.
Hinter dem Package-Namen steht immer das Schlüsselwort "is". Es gibt zwar auch ein syntaktisch Substitut, auf welches ich hier nicht weiter eingehe.