Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/10/2011, 12h22   #1
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
Par défaut décomposer les valeurs d'une colonne en plusieurs lignes

Bonjour à tous, j'ai une colonne d'une table de type integer de longueur 400 qui contient des codes sur 4 positions mais concaténés
exemple:
1ere ligne 005200680015
2eme ligne 0012
3eme ligne 00360027
et ainsi de suite la taille de chaque valeur est soit 4, 8 , 12 ,,,
je veus decouper cette colonne en une seule colonne de longueur de 4 (fixe) c'est dire la 1ere ligne et découper en 3 lignes et j'aurais donc:
1ere ligne 0052
2eme ligne 0068
3eme ligne 0015
4eme ligne 0012
5eme ligne 0036
6eme ligne 0027 , et ainsi de suite.
j'ai vu sur un forum qu'il faut utiliser le tDenormalize.
Merci beaucoup pour vos réponses.
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 13h57   #2
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Je te conseille de faire comme suivant ( j'ai testé chez moi et ça marche ) :

Tu crée la routine suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
public static String mettreVirguleAprs4Caractere(String a) {
 
        IF (a == NULL)
            RETURN NULL;
 
        FOR (int i = 4, j = 0; i < a.length(); i = i + 4, j++) {
            a = new StringBuffer(a).INSERT(i + j, ",").toString();
 
        }
 
        RETURN a;
 
    }
Cette routine prends chaque String que tu luis donnes et elle le transforme en mettant des virgule après chaque 4 caractère, par exemple :

Code :
mettreVirguleAprs4Caractere("065789658963");
aura comme résultat :

Citation:
0657,8965,8963,
Après tu places cette routines dans un tMap qui aura comme entré les lignes de ton fichier et donnera en sortie les lignes avec les virgules (grâce à la routine bien sûr)

Finalement tu relies la sortie de ton tMap à un tNormalize à qui tu donnes comme séparateur d’éléments ","

Et voilà le tour est joué !!

bonne chance.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/10/2011, 14h10   #3
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
Merci beaucoup pour ta réponse, j'ai une autre contrainte c'est que je ne connais pas JAVA, j’insère ce code dans quel composant dans tjava ou dans l’expression du tmap, je sais que je suis trop assisté, mais patiente avec moi s'il te plait.
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h23   #4
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Il faudrait créer une routine et y créer la fonction que je t'ai envoyé.
Regarde ce tuto il explique pas à pas comment créer une routine et comment l'utiliser dans un tMap.

http://haskouse.developpez.com/tutor...ation-routine/
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h01.


 
 
 
 
Partenaires

Hébergement Web