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

Développement de jobs Discussion :

creation d'une requete dynamique


Sujet :

Développement de jobs

  1. #1
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut creation d'une requete dynamique
    bonjour,
    jai une requête que je souhaiterai rendre dynamique car je dois créer une table listant les 9 niveaux d'un departement. la requete pour obtenir le niveau 1 du departement est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select r_dpmt.dpmtIncde,dpmt1.dpmtdsc
    from r_dpmt,d_dpmt dpmt1
    where r_dpmt.dpmt1Incde=dpmt1.dpmtIncde
    pour avoir le niveau 1 et 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select r_dpmt.dpmtIncde,dpmt1.dpmtdsc,dpmt2.dpmtdsc
    from r_dpmt,r_dpmt dpmt1,r_dpmt dpmt2
    where r_dpmt.dpmt1Incde=dpmt1.dpmtIncde
    and r_dpmt.dpmt2Incde=dpmt2.dpmtIncde
    pour avoir les 3 niveaux ,j'aurais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select r_dpmt.dpmtIncde,dpmt1.dpmtdsc,dpmt2.dpmtdsc,dpmt3.dpmtdsc
    from r_dpmt,r_dpmt dpmt1,r_dpmt dpmt2
    where r_dpmt.dpmt1Incde=dpmt1.dpmtIncde
    and r_dpmt.dpmt2Incde=dpmt2.dpmtIncde
    and r_dpmt.dpmt3Incde=dpmt3.dpmtIncde
    cette demarche est la même quand on continue cad niveau 1à4,niveau1à5 etc
    voici la structure de la table r_dpmt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DPMTINCDE                      NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMTDSC                                 VARCHAR2(35)                                                                                                                                                                                  
    CPYINCDE                       NOT NULL NUMBER(12)                                                                                                                                                                                    
     DPMT1INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT2INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT3INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT4INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT5INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT6INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT7INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT8INCDE                     NOT NULL NUMBER(12)                                                                                                                                                                                    
    DPMT9INCDE                     NOT NULL NUMBER(12)
    au fait je dois continuer jusqu'au 9 niveaux(c'est a dire 1 à 9).j'ai donc pensé à un job talend qui me permettra de créer la requete .J'ai penséé à un tloop mais je sais pas comment faire avancer les indices et les ajouter dans mon select et dans mon where,merci de votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    Sur quel SGBD travailles-tu?

    Pour Oracle, il existe les requête hiérarchiques qui pourrait répondre à ton besoin ==> http://docs.oracle.com/cd/B12037_01/...queries003.htm

    Ca me semble compliqué de générer automatiquement des requêtes, surtout en terme de maintenance.
    Avec une requête hiérarchique, tu récupère le résultat que tu peux retravailler pour ensuite l'insérer dans ta table.
    Et cela offre l'avantage d'être simple en terme de maintenance.

    Enfin tout ceci est mon point de vue

  3. #3
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    oui j'utilise oracle mais ta reponse ne resout pas mon problème.mon but est de partir du niveau 1 en faisant à chaque fois des iterations jusqu'au niveau 9.peut etre utiliser une variable(dpmtx) ou le x va s'incrementer.
    je pourrai ensuite l'ajouter dans mon select et aussi daans ma jointure. je sais pas trop comment faire

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 71
    Points
    71
    Par défaut tLoop + un tRowGenerator
    Bonjour,

    Tu peux peut être incrémenter de 1 à 9 en utilisant en effet un tLoop + un tRowGenerator.
    Par contre de là générer automatiquement du code là je suis plus dubitatif en utilisant des composants...

    Avec un tJava par contre ça doit se faire plus facilement afin de rajouter les champs, tables et jointures supplémentaires.

    Désolé de ne pouvoir aider plus, bon courage pekre

  5. #5
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut OUF PB RESOLU
    jai reussi à trouvé la solution
    j'ai fait plusieurs methode statci,que j'ai appelé dans un toracleInput et j'ai aussi mis des variables de context.
    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
     
    public static String genererTabl(String tblName,int debut,int fin )
    	{
    		StringBuilder dept=new StringBuilder(tblName);
    		//String tablList=champ;
    		for(int i=debut;i<=fin;i++)
    		{
    			dept.append(", "+tblName+" "+tblName+i);
     
    		}
     
    		return dept.toString();
     
     
    	}
    	public static String genererChamp(String tblName,int debut,int fin,String tblColumn)
    	{
    		StringBuilder dept= new StringBuilder();
    		for(int i=debut;i<=fin;i++)
    		{
    			dept.append(", "+tblName+i+"."+tblColumn);
     
    		}
     
    		return dept.toString();
     
    	}
    	public static String genererwhere(String tblName,int debut,int fin,String nameLevel,String nameIncde )
    	{
    		StringBuilder dept= new StringBuilder();
    		for(int i=debut;i<=fin;i++)
    		{
    			dept.append(" and "+tblName+"."+nameLevel+i+"Incde "+"="+tblName+i+"."+nameIncde);
     
    		}
    		return dept.toString();
     
    	}
    toracleInput=>tmap=>thashoutput=>toracleOuput

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 71
    Points
    71
    Par défaut tjava?
    Quand tu dis "j'ai fait plusieurs methode statci,que j'ai appelé dans un toracleInput", tu veux dire que tu as utilisé un tJava en entrée non?
    Ou alors il me manque une notion entre les t[BDD]Input et java...
    Merci de tes lumières!

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

Discussions similaires

  1. Creation d'une requete avec "where" dynamique
    Par yozart dans le forum Développement de jobs
    Réponses: 9
    Dernier message: 11/01/2011, 10h13
  2. creation d une requete dynamique dans une procedure stockee
    Par oxilab dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/02/2008, 15h57
  3. Réponses: 5
    Dernier message: 25/12/2005, 15h17
  4. creation d'une fonction dynamiquement...
    Par bibile dans le forum Général Python
    Réponses: 2
    Dernier message: 04/08/2005, 10h38
  5. Creation d'une vue dynamique ?
    Par Simeans2004 dans le forum Administration
    Réponses: 5
    Dernier message: 01/07/2004, 15h25

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