PLPGSQL : syntaxe 'champ = (INSERT INTO ma_table . . . RETURNING ma_colonne'
Bonjour,
J'ai une erreur de syntaxe sur 'INTO' que je ne comprends pas au moment de la création d'une fonction PLPGSQL :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
CREATE OR REPLACE FUNCTION ma_fonction(
-- mes arguments commençant par '_'
)
RETURNS TEXT AS $$
BEGIN
IF _id IS NULL THEN
_id = (
INSERT INTO ma_table (
id,
nom,
prenom,
datedenaissance,
sexe
)
VALUES (
DEFAULT,
_nom,
_prenom,
_datedenaissance,
_sexe
)
RETURNING id
);
ELSE
UPDATE ma_table
SET
nom = _nom,
prenom = _prenom,
datedenaissance= _datedenaissance,
sexe= _sexe
WHERE id = _id
;
END IF;
-- poursuite du traitement des données
RETURN 'mon texte';
END;
$$ LANGUAGE PLPGSQL; |
Le message exact est :
Code:
1 2 3 4 5 6 7 8 9
| ERREUR: erreur de syntaxe sur ou près de « INTO »
LINE 28: INSERT INTO ma_table(
^
********** Erreur **********
ERREUR: erreur de syntaxe sur ou près de « INTO »
État SQL :42601
Caractère : 831 |
Merci d'avance pour l'aide apportée !