Fonction avec la requête SQL n'a pas de destination pour les données de résultat

Je suis en train de créer une fonction qui renvoie un Sélectionné resultset.
Lorsque j'appelle mon postgres fonction comme ceci select * from tst_dates_func() j'obtiens une erreur comme indiqué ci-dessous:

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

Voici la fonction que j'ai créé:

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;

Je ne sais pas pourquoi j'obtiens l'erreur ci-dessus. Je voudrais courir select * from tst_dates_func();
et récupérer des données. Ou encore rejoindre le résultat si nécessaire. Quel est le problème ici?

  • Veuillez voir les exemples dans le manuel: postgresql.org/docs/current/static/... et postgresql.org/docs/current/static/...
  • LANGAGE SQL, n'est-ce pas?
  • J'ai besoin d'elle pour être plpgsql fonction. En Plus avec le langage SQL, j'aurais besoin de mettre de l'instruction de la requête en chaîne avec des citations et je ne veux pas le faire.
  • avec language sql vous pouvez utiliser le même $body$ citant comme avec plpgsql. La citant le style n'a rien à voir avec la langue.
  • Lorsque j'utilise le language sql, il ne marche pas compiler la fonction. J'obtiens une erreur. ERROR: syntax error at or near "select" LINE 5: select a.date_value, a.date_id, a.date_desc from dates_t... ^
  • si vous supprimez le point de début et de FIN, la fonction de compilation si la langue est SQL.

InformationsquelleAutor Horse Voice | 2013-06-06