Weder IF ... THEN noch ELSE-Teil werden durchlaufen

Hallo,

entweder habe ich ein riesen Brett vor dem Kopf oder irgendetwas ist hier komisch. Ich habe in einer plpgsql-Funktion folgende IF-Verzweigung:

        SELECT  INTO cur_ansprechpartner_letzter_kontakt
                id          AS id
        FROM    letzter_kontakt
        WHERE   ansprechpartner = id_ansprech;

        IF FOUND THEN

            RAISE NOTICE ''Eintrag gefunden!'';

            result := cur_ansprechpartner_letzter_kontakt.id

        ELSE

            RAISE NOTICE ''Kein Eintrag gefunden!'';

            SELECT      INTO cur_letzter_kontakt
                        id      AS id
            FROM        kontakte
            WHERE       ansprechpartner = id_ansprech
            ORDER BY    kontaktam DESC,
                        kontaktum DESC
            LIMIT 1;

            INSERT  INTO letzter_kontakt (
                    ansprechpartner, kontakt
            )
            VALUES (
                    id_ansprech, cur_letzter_kontakt.id
            );

            result := curval(''letzter_kontakt_id_seq'');
        END IF;

        RAISE NOTICE ''Hallo Welt!'';

Wenn ich die Funktion in pgsql aufrufe, sollte sie doch entweder die Meldung ‘Eintrag gefunden’ oder ‘Eintrag nicht gefunden’ ausgeben, oder?
Tut sie aber nicht - weder der IF…THEN- noch der ELSE-Teil werden durchlaufen. Das letzte ‘Hallo Welt!’ wird aber ausgegeben. :confused:

Aber sofern kein Laufzeitfehler auftritt, sollte doch zumindest der ELSE-Teil durchlaufen werden, oder?
Ich habe auch schon mal probiert, den IF…THEN und den ELSE-Teil auszutauschen und auf ‘NOT FOUND’ zu testen, ohne Erfolg.

Ja. Klappt es, wenn Du im if-Teil das fehlende ‘;’ noch einfügst?

Andreas

Jau, super jetzt scheint es zu klappen! Manchmal bin ich so zugenagelt, dass ich die einfachsten Dinge nicht sieht. Vielleicht hätte ich meinen Kopf auch von Pascal- auf plpgsql-Syntaxprüfung umschalten sollen… :smiley: