| 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.