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 :

Manipulation de date - chargement partiel de données


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Manipulation de date - chargement partiel de données
    Bonjour,

    Environment : Talend V2.4.1 Postgresql MySQL

    J'ai une table HIST qui historise toutes les exécutions de job (date d'exécution, ...). Remplissage de la table HIST avec un tStatCatcher.

    Dans un job X, je souhaite charger les données dont la date de dernière mise à jour est supérieure à la date contenue dans la table HIST.

    Pour cela, j'ai :
    tPostgresqlInput ---Main---tJavaRow---OnComponentOK----tMySqlInput


    Le composant tPostgresqlInput contient :
    select * from "HIST" where "type_msge" = 'end' and "msge" = 'success'
    order by "date" DESC LIMIT 1

    Le composant tJavaRow contient :
    context.dateComparaison=row1.date.toString();
    System.out.println(context.dateComparaison);
    System.out.println(ConvDate.convertDate(context.dateComparaison));

    context.dateComparaison est de type String
    System.out.println(context.dateComparaison) donne Tue Sep 09 16:06:26 CEST 2008
    System.out.println(ConvDate.convertDate(context.dateComparaison)) donne 2008-09-09

    La routine ConvDate contient :
    package routines;
    import java.text.SimpleDateFormat;
    import java.text.ParsePosition;
    import java.util.Locale;

    public class ConvDate {
    public static String convertDate(String ladate){
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
    SimpleDateFormat sdff = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
    return sdff.format(sdf.parse(ladate,new ParsePosition(0)));

    }
    }


    Le composant tMysqlInput contient :
    select *
    from tableA
    where date > '"+ConvDate.convertDate(context.dateComparaison)+"';
    PROBLEME : Le job charge toutes les lignes.

    Si je mets :
    select *
    from tableA
    where date > '2008-09-09';
    C'est bon. Seules les lignes correspondant à cette date sont chargées.

    Why ???

    MERCI BEAUCOUP pour votre aide.
    Inspiré des échanges entre SebastienM et bouvda du 05/03/2008 que je remercie.
    Cordialement.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    A priori, on ne peut pas utilser ce type de syntaxe dans le tMysqlInput (...+ConvDate...).
    Mettre en place un tmap avec un after au niveau du filtre.
    Bonne journée.

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

Discussions similaires

  1. Chargement partiel de données XLS
    Par christelle_s dans le forum QlikView
    Réponses: 3
    Dernier message: 04/09/2012, 09h19
  2. [JDBC] manipulation des dates/heures en Java
    Par kurkLord dans le forum JDBC
    Réponses: 6
    Dernier message: 09/08/2004, 12h49
  3. Manipulations des Dates
    Par kurtc dans le forum Langage SQL
    Réponses: 11
    Dernier message: 13/04/2004, 14h39
  4. [IB6][BCB5]Manipulation des dates.
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 09/04/2004, 15h33
  5. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46

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