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

Requêtes PostgreSQL Discussion :

update avec tableau en paramètre


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut update avec tableau en paramètre
    Bonjour,

    Je voudrais faire un update en passant comme paramètre un tableau de valeurs comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tab text[];
     
    UPDATE ma_table
    SET inscrit_abonne = 'OK'
    WHERE inscrit_id IN (tab[1],......tab[n]);
    Le tableau à une taille variable.

    J'ai aussi essayé cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE ma_table
    SET inscrit_abonne = 'OK'
    WHERE inscrit_id IN ($1);
    avec $1 = 1,2,3 ça fonctionne pas

    avec $1 = 1 ça fonctionne

    $1 étant déclaré comme varchar

    Merci pour votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Il est possible d'exprimer le paramètre dans la requête sous la forme puis de passer dans $1 une chaine de caractères au format {texte1, texte2, texte3, ....}. Les accolades et virgules seront prises par l'interpréteur SQL comme séparateurs de champs du fait du transtypage text[] qui suit.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    => prepare a as select array_to_string($1::text[], ':');
    PREPARE
    => execute a('{a,b,cd}');
     array_to_string 
    -----------------
     a:b:cd
    (1 row)

Discussions similaires

  1. [PDO] PDO requêtes paramétrées avec tableau de paramètres de taille variable
    Par disciplined dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/08/2012, 09h41
  2. procedure avec tableau en paramètre
    Par Kaféine dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2009, 16h50
  3. UPDATE avec 2 tableau
    Par phpaide dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/06/2006, 21h41
  4. [MySQL 4.7] update avec 2 tableau
    Par phpaide dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/05/2006, 16h37
  5. [VB6] Déclaration d'un tableau avec variable en paramètre.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/10/2005, 13h21

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