J'ai écrit la fonction suivante qui renvoie les enregistrements d'une autre table 'parameters_ltree_ {time_created}' où time_created est une colonne de la table historical_ltree.Suppression des guillemets de la chaîne concaténée dans l'identificateur plpgsql
CREATE OF REPLAE function get_my_path(date_string text, path_arg ltree) RETURNS SETOF ltree AS
$BODY$
DECLARE
p text;
d text;
BEGIN
d := quote_ident(date_string);
p := 'parameters_ltree_';
RETURN QUERY EXECUTE format(
'SELECT path from %I' || '%I
WHERE path = %I
ORDER BY path
LIMIT 1'
, p, date_string, path_arg);
END
$BODY$
LANGUAGE plpgsql;
SELECT id, path, get_my_path(to_char(time_created, 'YYYYMMDD')), path) from historical_ltree
La fonction compile, mais quand je lance la requête SELECT en bas, il jette une erreur de syntaxe:
ERROR: relation "parameters_ltree_" does not exist
LINE 1: SELECT path FROM parameters_ltree_"20161201"
^
J'ai essayé de nombreuses méthodes pour obtenir cette concaténation pour fonctionner correctement mais sans disponible, y compris en passant la chaîne de date comme un numérique.
merci brillant! – Haris
sûr. pas de soucis –