Temat: plpgsql i zmienne typu RECORD
Witam,
Troszeczkę odświeżę temat
Spróbowałem wykorzystać zamieszczone rozwiązanie i w sumie działa tylko że jest zwracana jedna kolumna
z wartością
("Lukasz","Bandzarewicz")
Czy jest możliwość aby wartość była zwracana w dwóch kolumnach?
Napisałem taką funkcje:
CREATE OR REPLACE FUNCTION set_checkpoint_used_detection(in_checkpoint_id bigint)
RETURNS TABLE ( col_status integer, col_date_detection timestamp ) AS
$BODY$DECLARE
date_detection_now timestamp := now();
new_id BIGINT;
BEGIN
SELECT nextval('Public.checkpoint_used_id_key') INTO new_id ;
INSERT INTO Public.checkpoint_used (id, checkpoint_id, date_detection)
VALUES (new_id, in_checkpoint_id, date_detection_now);
IF FOUND THEN
col_status := 0;
col_date_detection := date_detection_now;
ELSE
col_status := 1;
END IF;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION set_checkpoint_used_detection(bigint)
OWNER TO postgres;
funkcja sie wykonuje ale nie zwraca żadnego wyniku podejrzewam że trzeba użyć słowa:
RETURN ;
ale w jaki sposób?
Coś takiego:
RETURN (col_status, col_date_detection);
zwraca błąd przy tworzeniu/zastępowaniu funkcji
Proszę o jaką podpowiedź w tym temacie
Ok, znalazłem rozwiązanie z podziałem na kolumny wystarczy
SELECT * FROM set_checkpoint_used_detection(1);
zamiast
SELECT set_checkpoint_used_detection(1);
Jeżeli by ktoś znał inne rozwiązanie prosze pisać może będzie lepsze:)
Pozdrawiam
Ten post został edytowany przez Autora dnia 12.05.14 o godzinie 11:13