jeudi 16 octobre 2008

Datastage BUG - DATE - NUMBER

1/ Merci Stéphane pour informer de la session Talend (RoadShow)
C'est vraiment une révolution par rapport à Datastage…. Aucun intérêt d'acheter la version server...
Ca m'ouvre aussi beaucoup de nouvelles possibilités sur les cas Generali (pragamatisme, pragmatisme!!)

2/ Datastage c'est de la M$*#@# !!!!!!!!! (bon ça à le mérite d'exister et de répondre à des besoins...)
Comme le type date que nous sommes obligés de transformer

DATE => [DS] => DATE [DOESN'T WORK] Solution : TO_CHAR => [DS] => TO_CHAR => DATE
DATE :

- Dans mon SQL :
TO_CHAR(INF_AFFECTATION.AFF_DATD,'YYYY-MM-DD HH24:MI:SS') as AFF_DATD,

- Type de données : Timestamp 38 (allez savoir pourquoi…)

pour faire dans l'insert :
TO_DATE(:XX, 'YYYY-MM-DD HH24:MI:SS')
Et bien j'ai une erreur Datastage pour le type NUMBER !!

Car avec mon calcul d'ETP j'ai un FLOAT avec énormément de précision (autant que le type NUMBER d'Oracle accèpte)
NUMBER est transformé en DECIMAL 38 (allez savoir pourquoi bis…)

J'obtien l'erreur suivante :
jobName-Transformer: OCI has fetched truncated data

Alors je change donc ma longueur de champ pour la mettre à 9 9 « 999999999 »
Et je me tape une erreur Interne de type « Phantom »

DataStage Job 613 Phantom 3992 kghalo bad size 0x3b9aca14 ********** Internal heap ERROR KGHALO2 addr=0x0 ********* ****************************************************** HEAP DUMP heap name="Alloc statemen" desc=0x193f5c8 extent sz=0x1024 alt=32767 het=32767 rec=0 flg=2 opc=3 parent=192262c owner=0 nex=0 xsz=0x1024 EXTENT 0 Chunk 219a1dc sz= 2036 free " " Chunk 219a9d0 sz= 232 freeable assoc with mark prv=0 nxt=0 ... EXTENT 1 Chunk 21921a4 sz= 32784 perm "perm " alo=32784 EXTENT 2 Chunk 218a16c sz= 32784 perm "perm " alo=32784 ...

En essayant à une valeur de 6 9 « 999999 » j'arrive à mon résultat...
Datastage c'est au petit bohneur la chance...

En dehors des BUGS incompréhensibles, des manques de fonctionnalités, de son prix prohibitif, de respect d'aucune norme, c'est un ELT à recommander...