[PG/pgsql] Fonction, argument et FROM
Bonjour,
Depuis peu j'ai dût m'attaquer aux fonctions, je veux nommer ma table au moment de l'exécution (j'aurais un nombre finit de table), j'ai tenté ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE FUNCTION ri_ajoute_fils(IN nomtable character, IN nom character, IN pk_parent integer) RETURNS void AS
$$
DECLARE
Bornes RECORD;
BEGIN
SELECT BordDroite INTO Bornes FROM nomtable WHERE id=pk_parent;
UPDATE nomtable
SET BordDroit = BordDroit + 2
WHERE BordDroit >= Bornes;
UPDATE nomtable
SET BordGauche = BordGauche + 2
WHERE BordGauche >= Bornes;
INSERT INTO nomtable (BordDroit, BordGauche, nom)
VALUES (Bornes, Bornes+1, nom);
END;
$$LANGUAGE 'plpgsql' VOLATILE; |
Et donc à l'erreur suivante :
Citation:
ERREUR: erreur de syntaxe sur ou près de « $1 »
LIGNE 1 : SELECT BordDroite FROM $1 WHERE id= $2
^
REQUÊTE : SELECT BordDroite FROM $1 WHERE id= $2
CONTEXTE : SQL statement in PL/PgSQL function "ri_ajoute_fils" near line 4
********** Erreur **********
ERREUR: erreur de syntaxe sur ou près de « $1 »
État SQL :42601
Contexte : SQL statement in PL/PgSQL function "ri_ajoute_fils" near line 4
Il me semblait que Pl/pgsql permettait les variable à la clause FROM, ai-je mal lu ?
Par avance merci de votre aide