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 :

Lire une requete à partir d'un fichier .sql


Sujet :

Développement de jobs

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 212
    Par défaut Lire une requete à partir d'un fichier .sql
    Bonjour,

    J'aimerai savoir comment lire un fichier .sql ou .txt depuis talend.

    En effet cette pratique permettrait à n'importe qui de mon equipe à modifier la requête sans passer par le job en question...

    Je l'avais fait par le passé mais je ne me souviens plus du tout du composant que j'avais utilisé...

    Merci de vos réponses...

  2. #2
    Membre éclairé

    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
    Billets dans le blog
    1
    Par défaut
    bonjour,
    pr le fichier txt,convertir le en csv et appel un fileInput.
    concernant le fichier sql.il faut d'abord s'avoir avec bdd tu travailles avant toute manoeuvre

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 212
    Par défaut
    Citation Envoyé par pekre Voir le message
    bonjour,
    pr le fichier txt,convertir le en csv et appel un fileInput.
    concernant le fichier sql.il faut d'abord s'avoir avec bdd tu travailles avant toute manoeuvre
    J'utilise une bdd SQL SERVER.

  4. #4
    Membre très actif Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Par défaut
    Salut,

    Le plus simple est d'utilisé une routine qui lit le contenu de ton fichier. Voici le code qui le fait.

    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
    package routines;
    import java.io.InputStreamReader;
    import java.io.FileInputStream;
     
    public class FileHelper {
     
    	private static final int BUFFER_SIZE = 2048;
     
    	public static String readFile(String path){
    		StringBuilder fileContent = new StringBuilder();
    		try{
    			InputStreamReader file = new InputStreamReader(new FileInputStream(path), "utf8");		
    			int nbCharRead = BUFFER_SIZE;
    			while ( BUFFER_SIZE == nbCharRead){
    				char[] buffer = new char[BUFFER_SIZE];
    				nbCharRead = file.read(buffer);
    				if(nbCharRead>0){
    					fileContent.append(buffer, 0, nbCharRead);
    				}
    			}
    			file.close();
    		}
    		catch (Exception e) {
    			e.printStackTrace(System.err);
    		}
    		return fileContent.toString();
    	}
     
     
     
    }
    Ensuite dans ton composant tu modifies la variable __QUERY__ par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileHelper.readFile("chemin vers le fichier")
    sans mettre de retours à la ligne .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 212
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Salut,

    Le plus simple est d'utilisé une routine qui lit le contenu de ton fichier. Voici le code qui le fait.

    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
    package routines;
    import java.io.InputStreamReader;
    import java.io.FileInputStream;
     
    public class FileHelper {
     
    	private static final int BUFFER_SIZE = 2048;
     
    	public static String readFile(String path){
    		StringBuilder fileContent = new StringBuilder();
    		try{
    			InputStreamReader file = new InputStreamReader(new FileInputStream(path), "utf8");		
    			int nbCharRead = BUFFER_SIZE;
    			while ( BUFFER_SIZE == nbCharRead){
    				char[] buffer = new char[BUFFER_SIZE];
    				nbCharRead = file.read(buffer);
    				if(nbCharRead>0){
    					fileContent.append(buffer, 0, nbCharRead);
    				}
    			}
    			file.close();
    		}
    		catch (Exception e) {
    			e.printStackTrace(System.err);
    		}
    		return fileContent.toString();
    	}
     
     
     
    }
    Ensuite dans ton composant tu modifies la variable __QUERY__ par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileHelper.readFile("chemin vers le fichier")
    sans mettre de retours à la ligne .
    Merci de ta reponse...

    Quand tu dis "sans mettre de retours à la ligne" tu veux dire que ma requête contenu dans mon fichier ne doit être que sur une seule et même ligne ??

    si oui c'est pas très facile en cas de modification de la requête...

  6. #6
    Membre très actif Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Par défaut
    Citation Envoyé par forsay1 Voir le message
    Quand tu dis "sans mettre de retours à la ligne" tu veux dire que ma requête contenu dans mon fichier ne doit être que sur une seule et même ligne ??
    Non il ne faut pas mettre de retour à la ligne dans le champs texte de la variable __QUERY__.
    Tu peux mettre autant de retours à la ligne que tu le souhaites dans ton fichier.

  7. #7
    Membre éclairé

    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
    Billets dans le blog
    1
    Par défaut
    j'ai testé ce code et ça fonctionne chez moi avec 1e bd oracle.donc ça me semble être correct

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 212
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Non il ne faut pas mettre de retour à la ligne dans le champs texte de la variable __QUERY__.
    Tu peux mettre autant de retours à la ligne que tu le souhaites dans ton fichier.
    Un énorme Merci !! d'une part parce que tu m'apprend quelque chose... je ne savais pas qu'on pouvait utiliser les routines de cette façon et d'autre part parce que ça faciliter la maintenance au sein de mon équipe...

  9. #9
    Membre très actif Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Par défaut
    Citation Envoyé par forsay1 Voir le message
    Un énorme Merci !! d'une part parce que tu m'apprend quelque chose... je ne savais pas qu'on pouvait utiliser les routines de cette façon et d'autre part parce que ça faciliter la maintenance au sein de mon équipe...

    De rien

  10. #10
    Invité de passage
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut Merci
    8 ans plus tard, mais c'est toujours utile ! merci !!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/10/2011, 12h39
  2. lire une requete sql "FOR XML"
    Par snipon dans le forum ASP
    Réponses: 4
    Dernier message: 26/10/2010, 16h15
  3. Réponses: 3
    Dernier message: 16/05/2007, 14h48
  4. Réponses: 3
    Dernier message: 25/09/2006, 12h34
  5. Comment Lire une valeur à partir d'un fichier XML en C++?
    Par Hamdi Hedhili dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/12/2005, 11h09

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