Parameter

Mittels Parametern besteht die Möglichkeit, bei gespeicherten Routinen (Prozeduren, Funktionen) beim Aufruf Werte in die Routine zu übergeben bzw. beim Programmende Werte wieder zurück zugeben.

Eingabe-Parameter (IN) verhalten sich in der Routine wie initialisierte Konstanten, ihnen können im Anweisungsteil keine anderen Werte zugewiesen werden. Beim Aufruf werden ihnen Werte mittels Konstanten oder Variablen übergeben.
Ein-Ausgabe-Parameter (IN OUT) verhalten sich in der Routine wie initialisierte Variablen, ihnen können im Anweisungsteil andere Werte zugewiesen werden. Beim Aufruf werden ihnen Werte mittels Variablen übergeben.
Ausgabe-Parameter (OUT) verhalten sich in der Routine wie nichtinitialisierte Variablen, ihnen können im Anweisungsteil andere Werte zugewiesen werden. Beim Aufruf werden ihnen Werte keine Werte übergeben, die OUT-Parameter-Variablen sind lediglich nach Programmende gefüllt.
Als Datentyp sind alle PL/SQL-Datentypen zulässig.

Syntax der Parameter-Spezifikation:

   <Parameterdefinition> := [ IN | OUT | IN OUT ] <Datentyp>
                            [ { DEFAULT Wert } | { := Wert } ]

Beispiel:

   CREATE OR REPLACE PROCEDURE Mitteln (p_x IN NUMBER, p_y IN NUMBER)
   IS
     V_Ergebnis NUMBER(20);
   BEGIN
     v_Ergebnis:= (p_x + p_y) / 2;
     DBMS_OUTPUT.PUT_LINE('Das Ergebnis ist: ' || V_Ergebnis);
   END; 

   -- damit die Ausgabe mittels DBMS_OUTPUT.PUT_LINE angezeigt wird, muss die 
   -- Servervariable SERVEROUTPUT angestellt sein
   SET SERVEROUTPUT ON;
   EXECUTE Mitteln(8,22);

siehe auch: CREATE PROCEDURE, CREATE FUNCTION

Quellen:

  • Faeskorn-Woyke, Heide; Bertelsmeier, Birgit; Riemer, Petra; Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Feuerstein, Steven, Pribyl. Bill: "Oracle PL/SQL Programming", O'Reilly, 2009, ISBN-13: 978-0596514464
  • Oracle® Database SQL Language Reference 11g Release 1 (11.1) in http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm
  • Oracle® Database PL/SQL Language Reference 11g Release 2 (11.2) in http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/toc.htm
  • Saurabh, Gupta: "Oracle Advanced PL/SQL Developer Professional Guide", Packt Publishing Limited, 2012, ISBN 978-1-84968-722-5

Kategorie: Oracle-PL-SQL, P