Pages

[9.2] PLPGSQL : syntaxe 'champ = (INSERT INTO ma_table . . . RETURNING ma_colonne' sujet

samedi 1 février 2014




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:


CREATE OR REPLACE FUNCTION ma_fonction(
    -- mes arguments commençant par '_'
)
RETURNS TEXT AS $$
BEGIN
    IF _id_patient IS NULL THEN
        _id_patient = (
            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:


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 !




Aucun commentaire:

Enregistrer un commentaire