Ca marche, du moins, ça appel ma fonction, mais il y a un bug dans ma fonction :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| CREATE OR REPLACE FUNCTION ri_ajoute_fils(nom_table character, nom character, pk_parent integer)
RETURNS boolean AS
$BODY$
DECLARE
Bornes RECORD;
BEGIN
EXECUTE 'SELECT ''BordDroite'' INTO Bornes FROM '|| quote_ident (nom_table)||' WHERE id='||pk_parent||';';
EXECUTE 'UPDATE '|| quote_ident (nom_table)||'
SET ''BordDroit'' = ''BordDroit'' + 2
WHERE ''BordDroit'' >= Bornes;';
EXECUTE 'UPDATE '|| quote_ident (nom_table)||'
SET ''BordGauche'' = ''BordGauche'' + 2
WHERE ''BordGauche'' >= ''Bornes'';';
EXECUTE 'INSERT INTO '|| quote_ident (nom_table)||' (''BordDroit'', ''BordGauche'', nom)
VALUES (Bornes, Bornes+1, '''||nom||''');';
RETURN TRUE;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE; |
Lorsque je fais :
SELECT ri_ajoute_fils('ri', 'smart', 14);
J'ai le droit à :
ERREUR: EXECUTE of SELECT ... INTO is not implemented yet
CONTEXTE : PL/pgSQL function "ri_ajoute_fils" line 4 at EXECUTE statement
********** Erreur **********
ERREUR: EXECUTE of SELECT ... INTO is not implemented yet
État SQL :0A000
Contexte : PL/pgSQL function "ri_ajoute_fils" line 4 at EXECUTE statement
Qu'est-ce que cela signifie ?
Par avance merci de votre aide
Partager