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

Exécution et industrialisation Discussion :

[Talend] Chargement qui gèle


Sujet :

Exécution et industrialisation

  1. #1
    Membre éprouvé
    [Talend] Chargement qui gèle
    Bonjour à tous,
    J'essaye de charger les données retournées par une requête faite sur une base Oracle. Le problème est qu'à partir du 20ème enregistrement Talend ne fait plus rien : il ne charge plus de ligne et els secondes s'écoulent sans que j'ai d'erreurs.
    J'ai essayé de créé un autre job avec la même requête mais le problème subsiste.
    Ci-joint un screenshot du job, l'avertissement est un "schema is different from the query" généralement ça ne pose aps de problème et pour cette requête je n'arrive pas à faire la correspondance.

    SVP, auriez vous des pistes pour m'aider à comprendre ce problème ?

    J'utilise TOS v2.1.0 avec du code java.

    Merci d'avance

    Cordialement

    Ben

    edit : pas de problème avec les autres jobs
    Pensez à la fonction Recherche

  2. #2
    Futur Membre du Club
    Pourriez-vous indiquer la requête que vous exécutez ?

    Avez-vous essayé d'écrire dans un fichier ?

  3. #3
    Membre éprouvé
    Quand je remplace l'affichage de log par un fichier ça n'écrit rien (peut être car le job ne se termine pas...)par contre si je met une table avec commit every = 1 ça me fait les insertion dedans.

    la requête est là :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    "select /*+rule*/
    l.sigtie as SIGTIE, l.idtrn as IDTRN,  l.datexpprv as DATEXPPRV, 
    l.codscl as CODSCL, l.camion as CAMION,  1 as COUNT,
    l.codsoc as CODSOC,l.sigtra as SIGTRA,c.idobjcol as IDOBJCOL,
    c.sigliv as SIGLIV,c.valzn2 as VALZN2,
       (select count(*)
     from   lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst = '5') as NB_PAL_COMPL,
    (select count(*)
     from   lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst != '5') as NB_PAL_DETAIL,   
    (select /*+ CHOOSE */ sum(qteunt/decode(qteunt3,0,qteunt,qteunt3))
     from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst != '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobjpere = lcol.idobj) as NB_COLIS_DETAIL_CAMION,
    (select /*+ CHOOSE */ sum(qteunt/decode(qteunt3,0,qteunt,qteunt3))
     from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst = '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobj = lcol.idobj) as NB_COLIS_COMPL_CAMION,
    (select /*+ CHOOSE */ sum(poids)
     from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst != '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobjpere = lcol.idobj) POIDS_DETAIL,
    (select /*+ CHOOSE */ sum(poids)
     from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst = '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobj = lcol.idobj) POIDS_COMPL,
    (select /*+ CHOOSE */ sum(lobjstk.volume)
     from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst != '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobjpere = lcol.idobj) VOLUME_DETAIL,
    (select /*+ CHOOSE */ sum(lobjstk.volume)
     from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst = '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobj = lcol.idobj) VOLUME_COMPL,
       (select /*+ CHOOSE */ sum ( decode (QTEUNT5, QTEUNT, decode (QTEUNT3, 0,0, (QTEUNT/ QTEUNT3)))) 
       from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst != '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobjpere = lcol.idobj) NB_BOX
    from ltrn l,
         (select l.codsoc, l.typtie, l.datexpprv, l.statut, l.codscl, l.codplntrn, l.camion, count(*) nbtrn
          from ltrn l
          where codsoc ='"+context.getProperty("soc")+"'
            and typtie = 'DEP'
            and statut = '8'
            and datmod='"+context.getProperty("datecharge")+"'
          group by l.codsoc, l.typtie, l.datexpprv, l.statut, l.codscl, l.codplntrn, l.camion
         ) ltrn_p,lcol c,lobjstk o
    where l.codsoc = ltrn_p.codsoc
      and l.typtie = ltrn_p.typtie
      and l.statut = ltrn_p.statut
      and l.datexpprv = ltrn_p.datexpprv
      and l.codscl = ltrn_p.codscl
      and l.codplntrn = ltrn_p.codplntrn
      and l.camion = ltrn_p.camion
      and c.codsoc = l.codsoc
       and  c.typtie = l.typtie
       and  c.sigtie = l.sigtie
       and  c.idtrn = l.idtrn
       and  o.codsoc = c.codsoc
       and  o.typtie = c.typtie
       and  o.sigtie = c.sigtie 
       and  o.idobj = c.idobj
       and(l.datmod='"+context.getProperty("datecharge")+"' or c.datmod='"+context.getProperty("datecharge")+"' 
    or o.datmod='"+context.getProperty("datecharge")+"')  
    "


    Malgrés les apparences elle s'exécute très rapidement (0.2 sec ^^) et si je fais un :
    select count(*) from (la_requete), le log m'affiche bien 210 ce qui est le nombre d'enregistrements que je devrais charger.

    Voici le contenu des lignes 20 et 21 :
    40;13688;20070712;7; ;1;12;LECASUD;57200004011094300;584; ;0;8;654;(null);2134,355;(null);7,442867222;(null);(null)
    40;13688;20070712;7; ;1;12;LECASUD;57200004011100300;584; ;0;8;654;(null);2134,355;(null);7,442867222;(null);(null)

    grand merci pour votre aide

    cordialement
    Pensez à la fonction Recherche

  4. #4
    Membre éprouvé
    J'ai une piste !!
    la même requête mais sans le bout
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       (select /*+ CHOOSE */ sum ( decode (QTEUNT5, QTEUNT, decode (QTEUNT3, 0,0, (QTEUNT/ QTEUNT3)))) 
       from   lobjstk, lcol
     where  lcol.codsoc = l.codsoc
       and  lcol.typtie = l.typtie
       and  lcol.sigtie = l.sigtie
       and  lcol.idtrn = l.idtrn
       and  lcol.codlnst != '5'
       and  lobjstk.codsoc = lcol.codsoc
       and  lobjstk.typtie = lcol.typtie
       and  lobjstk.sigtie = lcol.sigtie 
       and  lobjstk.idobjpere = lcol.idobj) NB_BOX

    fonctionne très bien.
    Mais pourquoi ce bout fait planter Talend et pourquoi à la ligne 21 ? Là j'ai du mal :S

    edit :
    Si je remplace
    sum ( decode (QTEUNT5, QTEUNT, decode (QTEUNT3, 0,0, (QTEUNT/ QTEUNT3))))
    par
    sum ( case when QTEUNT5=QTEUNT Then ( case when (QTEUNT3=0 or QTEUNT3 is null) Then 0 Else QTEUNT/ QTEUNT3 end) else 0 end)

    Ca fonctionne nickel.

    Désolé d'avoir créé ce post pour pas grand chose au final.

    Problème signalé sur le forum officiel.
    Pensez à la fonction Recherche