ich habe hier ein Phänomen vor mir was ich mich überhaupt nicht erklären kann.
CREATE OR REPLACE FUNCTION Test (Integer) RETURNS SETOF "Messwert" AS'
SELECT "Fuehler_1","Timestamp" FROM "Messwert" where "Wert" = $1;
/*
SELECT * FROM "Messwert" where "Wert" = $1;
*/
'LANGUAGE sql;
Ich erhalte stets als Ausgabe immer nur eine Tabelle wo alle Werte aus Fuehler_1 und Timestamp drinstehen. Warum? ich müstte doch 2 Spalten als Ergebnis erhalten oder? Ich habe das Verhalten ob bei Select * oder beim direkten benennen aller Spalten.
Danke Castorp danke für die sehr schnelle Antwort. Aber ich versteh sie leider nicht ganz. Wenn ich dich richtig verstehe sollte ich nicht die Kurzschreibweise von Select test(42) nutzen sondern Select * from test(42) aber was sagt mir das genau? ich kenne nur den Aufruf Select * from test where … = 42 das wiederum würde doch dem entsprechen was ich oben geschrieben habe oder?
Das mit den Anführungsstrichen ist auch so eine Sache. Bei meinen Abfragen klappt nichts wenn nicht die Tabellenbezeichnungen (egal ob Umlaute oder Sonderzeichen enthalten sind) in Anführungsstrichen gesetzt sind. Ich vermute das ist irgendeine Einstellung aber ich habe noch nichts gefunden und mir die Finger schon wund gegoogelt.
neben dem von castorp gesagtem: was hat denn die Tabelle “Messwert” für einen Aufbau? Wenn Du SETOF “Messwert” definierst, dann sollte da auch dieser Tabellentyp rauskommen. Du hast im Select aber nur 2 Spalten Fuehler_1 und Timestamp, es gibt aber auch noch Wert, siehe Where-Condition. Das paßt nicht ganz zusammen.
Und ja: Du solltest den Body von Funktionen mit Dollarquoting behandeln, die ’ sind sowas von altmodisch …
@akretschmer ihr macht mich hier fertig. Das geht ja wie das Bretzel backen hier! WOW!
Kannst du mir das mit dem Dollarquoting zeigen? bzw. einen link geben wo ich das nachlesen kann? ich finde immer nur diese Variante mit den ’ ’ und altmodisch will ich doch nicht bleiben!
Das mit dem Groß- und Kleinschreiben habe ich jetzt verstanden! danke dir!
Jungs ihr seit Spitze. ich hätte gleich noch ein paar weitere Fragen g aber die formuliere ich in einem anderen Thread neu. Ich bin noch neu im Thema Postgresql aber so macht lernen Spaß! Danke für eure Hilfe!