Selbstdefinierter-Fehler

Ein selbstdefinierter Laufzeitfehler ist eine deklarierte EXCEPTION, die mittels der RAISE-Anweisung ausgelöst wird.

Beispiel:

Eine Prozedur zum Löschen des Lagerbestand für Teile, die keine Materialien sind:

   CREATE OR REPLACE PROCEDURE Loesche_Lagerbestand2
   (p_Teilenr       Teile.TNr%TYPE) 
   IS
      v_Nr            Teile.TNr%TYPE;
      v_Typ           Teile.Typ%TYPE;
      err_material    EXCEPTION;
   BEGIN
      SELECT TNr INTO v_Nr FROM Teile
      WHERE  TNr = p_Teilenr;
      SELECT typ  into v_Typ FROM teile
      WHERE  TNR = p_teilenr;
      IF p_typ = 'Material' THEN
         RAISE err_material;
      END IF; 
      DELETE FROM Lagerbestand WHERE  TNr = p_Teilenr;
      COMMIT;
   EXCEPTION
      WHEN err_material THEN
        ROLLBACK;
        DBMS_OUTPUT.PUT_LINE ('Materialien dürfen nicht gelöscht werden!');
 END;

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