IF-Anweisung

Die IF-Anweisung ermöglichst die bedingte Ausführung von Anweisungen. Die Bedingungen sind boolesche Bedingungen beliebiger Komplexität und unterscheiden sich nur geringfügig von den Suchbedingungen für die WHERE-Klausel definierbar sind. Anders als in der WHERE-Klausel können die Spaltennamen der Tabellen nicht verwendet werden, da sich die IF-Anweisung nicht auf eine Tabelle bezieht. Stattdessen werden PL/SQL-Variablen benutzt. Es können auch Aufrufe von PL/SQL-Funktionen sein, die einen booleschen Rückgabewert haben.

Auch hier liegt eine dreiwertige Logik zugrunde. Wenn die Bedingung TRUE ist, werden die Anweisungen im THEN-Zweig ausgeführt und anschließend wird zum END IF gesprungen. Ist sie FALSE oder NULL, wird der nächste Zweig abgearbeitet. Die optioanlen ELSIF-Zweige werden nur ausgeführt, wenn die Bedingungen jeweils TRUE sind. Ansonsten wird der optionale ELSE-Zweig ausgeführt.

Syntax einer IF-Anweisung:

   <IF Anweisung> ::=
       IF <Bedingung> 
       THEN    <SQL- und PL/SQL-Anweisung>; [ <SQL- und PL/SQL-Anweisung>; ]...
       [ ELSIF <Bedingung> THEN
               <SQL- und PL/SQL-Anweisung>; [ <SQL- und PL/SQL-Anweisung>; ]... ]...
       [ ELSE
               <SQL- und PL/SQL-Anweisung>; [ <SQL- und PL/SQL-Anweisung>; ]... ]
       END IF;

Beispiel:

    IF    V_Anzahl = 0 THEN V_Ausgabe := 'A';
    ELSIF V_Anzahl = 1 THEN V_Ausgabe := 'B';
    ELSIF V_Anzahl = 2 THEN V_Ausgabe := 'C';
    ELSE  V_Ausgabe := 'Weder A noch B noch C';
    END IF;

siehe auch : CASE

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, I