Hallo,
entweder habe ich ein riesen Brett vor dem Kopf oder irgendetwas ist hier komisch. Ich habe in einer plpgsql-Funktion folgende IF-Verzweigung:
Wenn ich die Funktion in pgsql aufrufe, sollte sie doch entweder die Meldung 'Eintrag gefunden' oder 'Eintrag nicht gefunden' ausgeben, oder?Code: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!'';
Tut sie aber nicht - weder der IF..THEN- noch der ELSE-Teil werden durchlaufen. Das letzte 'Hallo Welt!' wird aber ausgegeben.
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.
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
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...![]()
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen