query has no destination

Kampfgummibaerlie

Datenbank-Guru
Beiträge
743
Ich habe folgenden Error, beim anwenden folgender, bereits erstellter Funktion:
ERROR: query has no destination for result data CONTEXT: PL/pgSQL function mieteintreffen(integer) line 1 at SQL statement SQL state: 42601

Hier der Code, wie ich die Funktion erstellt habe:
Code:
create or replace function mieteintreffen(x integer)
RETURNS
table (miet_id integer, maschinen_id smallint, startdatum date, startzeit time, enddatum date, endzeit time) AS
$$ Begin update vermietungen
set mietzeit = tsrange(now()::timestamp, now()::timestamp+'1.5 Hour') where vermietungen.miet_id = x
returning
vermietungen.miet_id,
vermietungen.maschinen_id,
to_char(lower(vermietungen.mietzeit)::date, 'DD.MM.YYYY'),
to_char(lower(vermietungen.mietzeit)::time, 'HH24:MI'),
to_char(lower(vermietungen.mietzeit)::date, 'DD.MM.YYYY'),
to_char(lower(vermietungen.mietzeit)::time, 'HH24:MI');
END; $$
Language plpgsql;

Mein anliegen wäre, dass vl. jemandem mein Fehler auffällt oO

Wäre euch sehr dankbar ^^
Warum will ich bei der Function die entsprechende Table returnen?
Bin am programmieren der Homepage, und will eine schöne "Bestätigung" erhalten, wenn diese erfolgreich eingetragen wurde.

Danke im Voraus :)

EDIT:
Oder muss ich die entsprechenden Werte, die in der Tabelle stehen, zu einem default Datum/Time machen, bevor ich sie per to_char ändern kann?
 
Werbung:
damit ich meine Lösung nicht oben dazuschreibe, aber ich habe das Problem relativ gelöst.

Ich habe es zwar nicht in eine Function gepackt (Function-Freak hier xD), aber die Query funktioniert, und gibt auch die entsprechenden Werte zurück:

Code:
update vermietungen
set mietzeit = tsrange(now()::timestamp, now()::timestamp+'1.5 Hour') where vermietungen.miet_id = 452
returning    
vermietungen.miet_id,
vermietungen.maschinen_id,
to_char(lower(vermietungen.mietzeit)::date, 'DD.MM.YYYY'),
to_char(lower(vermietungen.mietzeit)::time, 'HH24:MI'),
to_char(upper(vermietungen.mietzeit)::date, 'DD.MM.YYYY'),
to_char(upper(vermietungen.mietzeit)::time, 'HH24:MI');

habs auch schön in die Homepage eingebaut in der Testphase, und ja, klappt so ;)
(oder muss ich in der Function einfach nur dieses Begin und End entfernen?)

Ja, Funktionen sind teuer, und jetzt habe ichs schon so eingebaut, fährt die Eisenbahn drüber :D
 
Zurück
Oben