Próbuję utworzyć funkcję, która zwraca SELECTed zestaw wyników. Kiedy wzywam moje postgres funkcja jak to select * from tst_dates_func()
otrzymuję komunikat o błędzie, jak pokazano poniżej:Funkcja z zapytaniem SQL nie ma miejsca docelowego dla danych wynikowych
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function "tst_dates_func" line 3 at SQL statement
********** Error **********
ERROR: query has no destination for result data
SQL state: 42601
Hint: If you want to discard the results of a SELECT, use PERFORM instead.
Context: PL/pgSQL function "tst_dates_func" line 3 at SQL statement
Oto funkcja stworzyłem:
CREATE OR REPLACE FUNCTION tst_dates_func()
RETURNS TABLE(date_value date, date_id int, date_desc varchar) as
$BODY$
BEGIN
select a.date_value, a.date_id, a.date_desc from dates_tbl a;
END;
$BODY$
LANGUAGE plpgsql;
Nie jestem pewien, dlaczego otrzymuję powyższy błąd . Chciałbym uruchomić select * from tst_dates_func();
i odzyskać dane. Lub w razie potrzeby dołącz zestaw wyników. Jaki jest tutaj problem?
Proszę zobacz przykłady w instrukcji: http://www.postgresql.org/docs/current /static/plpgsql-control-structures.html#PLPGSQL -STATEMENTS-RETURNING i http://www.postgresql.org/docs/current/static/sql-createfunction.html#SQL-CREATEFUNCTION-EXAMPLES –
LANGUAGE powinno być SQL, czyż nie? –
Potrzebuję go do funkcji plpgsql. Plus z językiem będącym SQL, musiałbym umieścić zapytanie zapytania w łańcuchu z cytatami i nie chcę tego robić. –