Bonjour,
Je dois traiter dans le cadre d'un stage de master d'information en sante des fichiers textes mensuels de plusieurs milliers de lignes.
Ces lignes sont des suites de caractères (165) correspondant aux valeurs de variables (30 variables différentes) recuperes par le service administratif. Ces valeurs ne sont pas séparées par un quelconque caractère (blanc, ',' ou bien ';'). Ces fichiers natifs
Les variables sont toujours les mêmes d'un mois sur l'autre mais leur position dans la chaine peut changer de place. Cela est défini par un format codé sur 3 caractères en debut de chaines. Lui est toujours à cette position.
Je dois, entre autre, en vu, de constituer un entrepôt de données créer 2 tables depuis ces données.
J'ai fait un script php qui tronçonne cette chaine en mettant les valeurs dans des variables et j'enregistre ds mes 2 tables mais le tps de traitement est vraiment tres tres long (plusieurs dizaine de minutes) mais la recuperation des valeurs est fiable.
j'ai decouvert les SUBSTR() et faisant un INSERT INTO .... SELECT DISTINC.....dans mysql, j'ai considérablement accélérer le processus (quelques secondes) mais mon probleme est que cette solution ne respecte pas le format et donc je n'enregistre pas ce qu'il faut là où il faut .....
Peut insérer des conditions IF dans une requête mysql pour que je fasse le trainement 1 ou le 2 en fonction du format ? Quelle syntaxe ?
Y a t il une autre solution plus rapide ? plus simple ?
Faut il passer par les procédures stockées de mysql (mais je ne sais ni les implémenter, in les appeler ni.....) ?
(je ravaille sous windows XP, wampserver 2.0 , php 5.2.7 , phpmyadmin, mysql: 5.1.30 )
Partager