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

Langage SQL Discussion :

UPDATE avec plusieurs variables


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Points : 39
    Points
    39
    Par défaut UPDATE avec plusieurs variables
    Bonjour,


    Je lance ce script pour faire des modif au niveau de ma base oracle , y a t'il un moyen de le faire une fois sans changer var à chaque fois et relancer le script par la suite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    update toto
    --Mettre 829 au lieu de 820
    --Mettre 819 au lieu de 810 
    -- ......
    -- ..
    --..
     
     
    set var='999'
    where var='000'
    /

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Donnez-nous un exemple plus détaillé de ce que vous avez dans cette table et ce que voulez obtenir (ie après la mise à jour).

    Indiquez aussi votre SGBD et sa version.

  3. #3
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    si j'ai bien compris, il veut faire une espèce de "UPDATE WHEN"

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Points : 39
    Points
    39
    Par défaut UPDATE plusieurs variables
    c'est plus clair mnt


    UPDATE toto
    --Mettre 829 au lieu de 820
    --Mettre 819 au lieu de 810
    -- ......
    -- ..
    --..


    SET var='829'
    WHERE var='820'

    /


    UPDATE toto
    --Mettre 829 au lieu de 820
    --Mettre 819 au lieu de 810
    -- ......
    -- ..
    --..


    SET var='819'
    WHERE var='810'
    /

    Merci

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Utilisez la structure CASE WHEN ou DECODE selon votre SGBD que vous n'avez pas indiqué dans votre 1er post (pour rappel c'est exigé dans les règles du forum) et je vous l'ai demandé dans ma réponse précédente

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Points : 39
    Points
    39
    Par défaut UPDATE avec plusieurs variables
    Oracle 9i

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Parfait.
    Vous m'aurirez donnée cette info ce matin alors vous n'auriez pas du attendre 15h pour avoir une solution
    Je vous présente, ici, 2 solutions qui correspondent aux "algorithmes" suivants :
    - si x = 10 alors x := 200 sinon si x = 11 alors x := 300 sinon si x = 12 alors x := 400
    - si x = 200 alors x := 1500 sinon si x = 300 alors x := 2500 sinon si x = 400 alors x := 3500
    A vous de vérifier que ces requêtes sont fonctionnent en 9i (je les ai testée en 10gR1) et à les adapter suivant votre contexte :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    10g SOC5> DROP TABLE DVP;
     
    Table supprimée.
     
    10g SOC5> CREATE TABLE DVP (X NUMBER);
     
    Table créée.
     
    10g SOC5> INSERT INTO DVP VALUES (10);
     
    1 ligne créée.
     
    10g SOC5> INSERT INTO DVP VALUES (11);
     
    1 ligne créée.
     
    10g SOC5> INSERT INTO DVP VALUES (12);
     
    1 ligne créée.
     
    10g SOC5> 
    10g SOC5> SELECT *
      2  FROM DVP;
     
             X
    ----------
            10
            11
            12
     
    3 ligne(s) sélectionnée(s).
     
    10g SOC5> 
    10g SOC5> UPDATE DVP
      2  SET X = DECODE(X, 10, 200,
      3                    11, 300,
      4                    12, 400);
     
    3 ligne(s) mise(s) à jour.
     
    10g SOC5> 
    10g SOC5> SELECT *
      2  FROM DVP;
     
             X
    ----------
           200
           300
           400
     
    3 ligne(s) sélectionnée(s).
     
    10g SOC5> 
    10g SOC5> UPDATE DVP
      2  SET X = CASE X WHEN 200 THEN 1500
      3                 WHEN 300 THEN 2500
      4                 WHEN 400 THEN 3500
      5                 ELSE X
      6          END;
     
    3 ligne(s) mise(s) à jour.
     
    10g SOC5> SELECT *
      2  FROM DVP;
     
             X
    ----------
          1500
          2500
          3500

Discussions similaires

  1. [URL Rewriting] Problème avec plusieurs variables
    Par kwzprtt dans le forum Apache
    Réponses: 2
    Dernier message: 13/05/2008, 01h00
  2. Procédure événementielle avec plusieurs variables
    Par Shadow5 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 17/04/2008, 15h10
  3. Réponses: 10
    Dernier message: 26/03/2008, 15h00
  4. Réponses: 4
    Dernier message: 26/09/2006, 18h28
  5. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35

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