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 :

Déclarer, affecter une variable dans une boucle cmd ?


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut Déclarer, affecter une variable dans une boucle cmd ?
    Bonjour

    Comment peut-on utiliser une variable déjà déclarer et affecter dans une fonction dans une boucle cmd.
    Je vous explique en détails le contexte :
    j'ai une variable qui est déclaré de type date et affecté dans la 1ere ligne du fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_de_calcul_bd := (select distinct(date_de_calcul) from XXXXXX );
    J'arrive pas à utliser cette variable dans une 2e partie du code ou il y a une boucle de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     FOR r IN select distinct ztd from XYZT
     LOOP
     cmd := ' 
    .....................'
    execute cmd;
    END LOOP;
    comment peut-on résoudre ce problème ?
    J'ai essayé de déclarer et affecter la variable de nouveau dans la boucle mais j'ai eu des errors tjrs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       declare date_de_calcul_b date;
       set date_de_calcul_b  = select distinct(date_de_calcul) from tbl_reporting_verif_prevrr_bcm  order by date_de_calcul desc limit 1;;
    Error :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR:  syntax error at or near "date"
    LINE 2:    declare date_de_calcul_b date
    Merci
    bien cordialement

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Pour la première partie, il faut donner CLAIREMENT toute la partie du cmd:=... Il y a certainement une mauvaise façon de placer la variable dans une chaine.
    Pour la deuxième, il faut la structure suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    declare
    les déclaration
    BEGIN
    les traitements du bloc 
    END
    Autrement dit, chaque bloc declare est accompagné d'un bloc BEGIN... END
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut
    Bonjour
    Merci pour votre réponse,
    je respecte bien la structure de déclaration des variables , malgré si j'ai écrit la déclaration et l’affection dans un exemple avant juste à côté mais c'est pas ça le cas dans mon code.

    l'exemple exact du mon code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     cmd := 
    'nb_cellules := (select count(*) as nb_cellules from XXXXXXXXXXXXX
    where constructeur=''ERICSSON'' and bandefreq in(''XXXXXXXXX',''XX'',''XXXX'') ' );
    insert into tbl_YYYYYYY (nb_check_p0p1_2g_e3) select XYZTTTT*nb_cellules;
    avec nb_cellules est bien dans la declaration du function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE
    nb_cellules integer; 
      BEGIN
    c quoi le problème alors ? "ERROR: syntax error at or near "nb_cellules"
    la cmd est bien fermée et pas de prob , et il y a "execute cmd;
    END LOOP;"


    Merci

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Le code CORRECT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     cmd := 'select count(*) as nb_cellules from XXXXXXXXXXXXX where constructeur=''ERICSSON'' and bandefreq in(''XXXXXXXXX',''XX'',''XXXX'') ' 
    EXECUTE cmd INTO nb_cellules;
     cmd :=  'insert into tbl_YYYYYYY (nb_check_p0p1_2g_e3) select XYZTTTT*' || nb_cellules;
    EXECUTE cmd;
    Je m'arrête là!
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/03/2016, 16h23
  2. affectation du resultat d'une reqûete dans une variable
    Par etoile_de_vie dans le forum PL/SQL
    Réponses: 7
    Dernier message: 06/11/2009, 17h44
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. affecter la valeur d'une requete dans une variable (VB6)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/03/2007, 14h19
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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