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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !