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

DB2 Discussion :

[Trigger] Typage de variable dans une procédure?


Sujet :

DB2

  1. #1
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut [Trigger] Typage de variable dans une procédure?
    Bonjour,

    Je voudrais savoir si on peut comme sous Oracle déclaré une variable du même type que celui d'une colone
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    declare v_num_depot mchead.kofaci %ROW TYPE;
    ET deuxième question es-ce qu'on peut faire une boucle de ce type :
    avec un curseur c_mchead et deux variable déclaré comme ci-dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LOOP
    		FETCH c_mchead INTO v_num_depot,v_num_art;
                    //mon traitement
             end loop;
    Merci d'avance de vos réponse

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Bonjour yoyopi

    Veuillez svp vous mettre en règle avec le forum en éditant votre post afin de modifier votre titre en conséquence. (Bouton en haut à droite du premier post de ce thread)

    Les règles du forum
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut
    Alors toujours personne???

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut Re: [Trigger] Typage de variable dans une procédure?
    Citation Envoyé par yoyopi
    Bonjour,

    Je voudrais savoir si on peut comme sous Oracle déclaré une variable du même type que celui d'une colone
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    declare v_num_depot mchead.kofaci %ROW TYPE;
    ET deuxième question es-ce qu'on peut faire une boucle de ce type :
    avec un curseur c_mchead et deux variable déclaré comme ci-dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LOOP
    		FETCH c_mchead INTO v_num_depot,v_num_art;
                    //mon traitement
             end loop;
    Merci d'avance de vos réponse
    Les deux questions se résumant à Est-ce qu'on peut ... ?, Alors essaye et dis nous le resultat obtenu
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Voila déjà une partie de la réponse.

    Exemple made in IBM. 8)
    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
     
    CREATE PROCEDURE ITERATOR()
         LANGUAGE SQL
         BEGIN
           DECLARE v_dept CHAR(3);
           DECLARE v_deptname VARCHAR(29);
           DECLARE v_admdept CHAR(3);
           DECLARE at_end INTEGER DEFAULT 0;
           DECLARE not_found CONDITION FOR SQLSTATE '02000';
           DECLARE c1 CURSOR FOR
             SELECT deptno, deptname, admrdept
             FROM department
             ORDER BY deptno;
           DECLARE CONTINUE HANDLER FOR not_found
             SET at_end = 1;
           OPEN c1;
           ins_loop:
           LOOP
             FETCH c1 INTO v_dept, v_deptname, v_admdept;
             IF at_end = 1 THEN
               LEAVE ins_loop;
             ELSEIF v_dept = 'D11' THEN
               ITERATE ins_loop;
             END IF;
             INSERT INTO department (deptno, deptname, admrdept)
             VALUES ('NEW', v_deptname, v_admdept);
           END LOOP;
           CLOSE c1;
         END

  6. #6
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut
    Merci jab j'avais vu ce code et en cherchant partout je n'ai jamais vu quelque chose qui ressemble à ce que je veux faire donc je pense que ça doit pas être possible, mais si j'ai le temps j'essairai quand même et je vous tiendrait au courant!!!

  7. #7
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut
    Ca y est j'ai fait le test on ne peut pas créer une variable avec un type dynamique comme sous Oracle!

    Par contre j'ai une autre question j'ai une variable de type varchar et je voudrais faire une concaténation du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DECLARE v_texte varchar(50);
    declare nb char(10);
     
    nb = select nb from ma_table;
    set v_texte = 'il y a ' & nb &' personnes dans la table';
    end;
    Mais le problème c'est que ma requête ne passe pas car db2 ne veut accepter ni &,&&,|,||,+,++ donc comment faire une concaténation??

    Merci de vos réponses

  8. #8
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut
    C'est bon j'ai trouvé tout seul pour dfaire une concaténation il faut faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE v_txt varchar(50);
    declare nb char(10);
     
    nb = select nb from ma_table; 
    set v_txt=concat('Il y a ', nb);
    Voilà et il faut le refaire autant de fois qu'on en a besoin.

    Merci encore à tous ceux qui ont pris le temps d'essayer de m'aider

  9. #9
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Citation Envoyé par yoyopi
    Mais le problème c'est que ma requête ne passe pas car db2 ne veut accepter ni &,&&,|,||,+,++ donc comment faire une concaténation??
    C'est bizard car normalement || fonctionne aussi

  10. #10
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut
    En fait la concaténation que je voulais se situait dans un procédure PL/SQL c'est peut être le SQL qui n'acceptait pas ||

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau de variables dans une procédure stockée ?
    Par Seb33300 dans le forum Développement
    Réponses: 4
    Dernier message: 09/03/2009, 11h57
  2. Déclaration de variables dans une procédure stockée
    Par jbrasselet dans le forum Développement
    Réponses: 5
    Dernier message: 16/02/2009, 09h00
  3. Problème de variable dans une procédure
    Par 4rocky4 dans le forum VBA Access
    Réponses: 6
    Dernier message: 31/01/2008, 10h15
  4. Passage d'une variable dans une procédure
    Par Sakapatate dans le forum Langage
    Réponses: 19
    Dernier message: 03/06/2007, 10h22
  5. Réponses: 8
    Dernier message: 03/11/2006, 15h55

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