Schwer zu sagen. Was ergeben denn die einzelnen Anfragen mit diesen Parametern?
RAISE NOTICE kann dir hier auch noch weiterhelfen.
Hallo zusammen,
bei nachfolgend zitierter Funktion (gekürzt) habe ich das Problem, dass bei der Kundennummer immer '10129' rauskommt, egal welchen Parameter ich übergebe.
Ich sehe den Fehler einfach nicht.
Welches zweite Paar Augen kann mir helfen?
Code:CREATE OR REPLACE FUNCTION "getFreeQuota"(uid integer) RETURNS character varying AS $BODY$ declare uid alias for $1; belongsto integer := 0; kdnr character varying; begin select into belongsto "kscLogin"."belongsto" from "kscLogin" where uid = uid; IF (belongsto != 1) THEN select into kdnr "kscStammdaten"."KdNr"::character varying from "kscStammdaten" where uid = belongsto; ELSE select into kdnr "kscStammdaten"."KdNr"::character varying from "kscStammdaten" where uid = uid; END IF; return kdnr; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;
Geändert von serverfreak1982 (29.11.2010 um 22:35 Uhr)
Webhosting? Domains? => Westenberg + Küppers GbR
Schwer zu sagen. Was ergeben denn die einzelnen Anfragen mit diesen Parametern?
RAISE NOTICE kann dir hier auch noch weiterhelfen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Einzeln und seperat ausgeführt sind die Abfragen in Ordnung.
RAISE NOTICE muss ich mir erstmal ansehen.
Webhosting? Domains? => Westenberg + Küppers GbR
Da dürfte Dein Problem liegen.where uid = uid
Verwende einen anderen Namen für den Parameter, dann sollte es klappen. So wird nämlich immer die Spalte der Tabelle referenziert, nicht der Parameter
P.S.: Warum tust Du Dir das mit der Groß/Kleinschreibung und den nervigen Quotes eigentlich an?
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Du bist der Beste
Sowas offensichtliches sieht man mit der Zeit einfach nicht mehr
Mein Kollege wollte die Bezeichner gerne so haben.
Webhosting? Domains? => Westenberg + Küppers GbR
Öhm, wie Recht der castorp doch hat - habe ich auch übersehen ;-)
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Spätestens mit dem Wechsel auf 9.0 klappt das nicht mehr. Da schmeisst Postgres dann einen Fehler wenn ein Parameter den gleichen Namen hat wie eine Spalte Deiner Abfrage.
Übrigens: das "uid alias for $1;" kannst Du Dir sparen.
Es reicht dem Parameter in der Funktionsdefinition einen Namen zu geben.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen