IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

[plpgsql] transaction dans les fonctions ?


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Par défaut [plpgsql] transaction dans les fonctions ?
    bonjour ,

    j'aimerai savoir si il possible d'utiliser les transactions dans notre propre fonction postgresql ?
    Car lorsque je l'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE FUNCTION my_test(character varying, integer, character varying, integer, character varying, character varying, character varying, character varying) RETURNS integer AS '
    DECLARE
    var_code_famille integer;
    BEGIN
     BEGIN WORK;
     var_code_famille := SELECT nextval(''seq_code_famille'');
     INSERT INTO TBL_FAMILLE VALUES(var_code_famille, $1, $2, $3, $4, $5, $6, $7, $8);
     [.... autre insert]
     COMMIT WORK;
     RETURN var_code_famille;
    END;
    ' LANGUAGE plpgsql;
    j'ai l'erreur suivante :
    ERROR: syntax error at or near ""
    Merci
    A+

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Par défaut
    Salut,

    Avec quoi l'executes-tu ? dans le shell ? dans un requeteur ? sous Windows ? sous linux ? via ODBC ?

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Par défaut
    Salut !

    Mes fonctions je les tappe sous PhpPgAdmin.
    Parcontre, je les appel en php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = "SELECT my_test(var1, var2, ....)"
    $result = pg_query($result, $sql);
     
    if (!$result)
    die (pg_last_error($db);
    et j'obtiens :
    ERROR: syntax error at or near ""
    Et des que je n'utilise pas les transactions => j'ai plus d'erreur....
    Alors docteur ?

    merci,
    a+



  4. #4
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    pas sur, mais de memoire, tu ne peux pas mettre une transaction dans un procedure. il me semble que la procedure est elle meme une transaction , ce qui reviendrait a faire des transactions imbriquees...

    A verifier, mais je n ai pas trouve de transactions dans des procedures.

    ++

Discussions similaires

  1. [FLASH 8] Ciblage dans les fonctions
    Par abenhass dans le forum Flash
    Réponses: 2
    Dernier message: 14/12/2005, 14h00
  2. Transaction dans une fonction
    Par etiennegaloup dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/11/2005, 16h44
  3. "_" dans les fonctions
    Par reggae dans le forum C
    Réponses: 3
    Dernier message: 30/09/2005, 19h08
  4. [transaction dans une fonction]
    Par viny dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/08/2005, 21h33
  5. Réponses: 2
    Dernier message: 07/10/2004, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo