Vous n'êtes pas identifié(e).
Pages : 1
J'ai une vue dont le script de création est le suivant
CREATE OR REPLACE VIEW vparent_child AS
SELECT par.prod_id AS par_id, par.prod_version AS par_ver, par.prod_ref AS par_ref, par.prod_indice_rev AS par_ind, par.statut AS par_statut, par.date_heure AS par_date_heure, chi.prod_id AS chi_id, chi.prod_version AS chi_ver, chi.prod_ref AS chi_ref, chi.prod_indice_rev AS chi_ind, chi.statut AS chi_statut, chi.date_heure AS chi_date_heure
FROM prod_evolution par, prod_evolution chi, nomenclature nom
WHERE chi.prod_version = nom.prod_ver AND par.prod_version = nom.parent_prod_ver;
ALTER TABLE vparent_child OWNER TO postgres;
J'ai effectué la requête suivante avec la fonction récursive connectby :
SELECT * FROM connectby('vparent_child', 'chi_ver', 'par_ver', 3, 0, '~')
AS t(chi_ver bigint, par_ver bigint, level int, branch text);
J'ai eu le message d'erreur suivant :
ERREUR: la fonction connectby(unknown, unknown, unknown, integer, integer, unknown) n'existe pas
LIGNE 1 : SELECT * FROM connectby('vparent_child', 'chi_ver', 'par_ver...
^
ASTUCE : Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
What's happening?
Hors ligne
La fonction connectby est disponible dans le module contrib tablefunc. Il faut donc avoir installer ce module avant de pouvoir utiliser la fonction. Voir http://docs.postgresqlfr.org/8.3/tablefunc.html pour les détails.
Guillaume.
Hors ligne
Le problème se trouve plutôt du côté du 4ème paramètre qui doit être fournit en tant que texte quelle que soit son type c-a-d il faut mettre '3' au lieu de 3.
SELECT * FROM connectby('vparent_child', 'chi_ver', 'par_ver', '3', 0, '~')
AS t(chi_ver bigint, par_ver bigint, level int, branch text);
Hors ligne
Pages : 1