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

kettle/PDI Discussion :

update d'un nombre de ligne


Sujet :

kettle/PDI

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut update d'un nombre de ligne
    Bonjour,

    J'ai un petit souci sur Kettle.
    Je lis un fichier qui me donne une liste de nom de table de ma BDD (Jusque là ça marche).
    Ensuite, j'utilise le composant "exécution de script sql" et j'écris ma requête qui compte le nombre de ligne par rapport au table listé. (ca marche aussi)
    Maintenant, je veux mettre a jour une autre table avec le nombre de ligne que je viens de compter.

    J'ai essayer 2 méthodes :
    1/ Je reste dans mon script sql et je décompose en 2 requêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE matable SET nbligne = (SELECT count(*) FROM ?)
     WHERE nbligne IS NULL AND Nom_table= ?
    J'ai une erreur de débordement :
    2008/04/22 14:19:16 - Nombre ligne table.0 - ERROR (version 3.0.2, build 538 from 2008/02/06 13:13:19) : Erreur inattendue :
    2008/04/22 14:19:16 - Nombre ligne table.0 - ERROR (version 3.0.2, build 538 from 2008/02/06 13:13:19) : java.lang.ArrayIndexOutOfBoundsException: 1
    2008/04/22 14:19:16 - Nombre ligne table.0 - ERROR (version 3.0.2, build 538 from 2008/02/06 13:13:19) : at org.pentaho.di.trans.steps.sql.ExecSQL.processRow(ExecSQL.java:154)
    2008/04/22 14:19:16 - Nombre ligne table.0 - ERROR (version 3.0.2, build 538 from 2008/02/06 13:13:19) : at org.pentaho.di.trans.steps.sql.ExecSQL.run(ExecSQL.java:277)
    2008/04/22 14:19:16 - Statement canceled!
    2/J'utilise le composant "update", mais là, je ne sais pas comment récupérer mon nombre de ligne ... :/

    Merci de votre aide :-)

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Tu doit fournier 2 fois le paramètre "nom du table" dans "Exec SQL Script".
    Apres, c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE matable SET nbligne = (SELECT count(*) FROM ?)
     WHERE nbligne IS NULL AND Nom_table= '?'
    HTH,
    Matt

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Merci de ta réponse.

    J'ai vu aussi sur le forum de kettle, que le composant get files rows ne fonctionnait pas complètement (enfin si j'ai bien lu :/)

    J'ai utilisé ce composant pour qu'il me donne le nombre de ligne de mes fichiers, mais il ne me prend pas la valeur du paramètre.

    Dans fichier/répertoire, j'ai mi le chemin de mon dossier et dans caractère joker, je voudrais mettre mon paramètre (qui s'appelle fich_csv et qui contient des noms de fichier avec l'extension).
    Si dans joker, je mets : .*csv$ j'ai en retour le nombre total de ligne pour tous les fichiers et non par fichier.

    Est il possible de passer le parametre ?
    Si oui comment ?
    Si non, quel autre alternative ?

    Merci d'avance.

    PS : actuellement, c'est au niveau de récupération de variable/paramètre dans certain composant qui me gène.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    J'ai vu aussi sur le forum de kettle, que le composant get files rows ne fonctionnait pas complètement (enfin si j'ai bien lu :/)
    Oui, mais c'est déja corrigé. Kettle avance trés vite

    Je t'invite aussi de visiter l'example samples/jobs/run_all pour la créations des boucles avec paramétres ${fichier}

    Bonne chance!

    Matt

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    En fait, je parle de la portée et l'utilisation des champs dans une transformation.
    Car j'ai ouvert par exemple "get files get ..." et il y a des variable et non de la transmission de champs.

    La transmission de champs dans une transformation marche t'elle pour tous les composants ?

    Sinon je reviens aussi un peu sur mon problème : Vu que je lis bien mon fichier (qui est une liste de fichier) et recupere bien les valeur, je veux ensuites transmettre ces noms de fichiers dans "get files rows count" pour avoir le nombre de ligne par fichier. Comment faire ?


    Merci d'avance et désolé qi je mets du temps a assimiler les choses :/

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 447
    Points : 546
    Points
    546
    Par défaut
    L'étape "get files rows" peut recevoir le nom du fichier en argument (depuis la version 3.1 je crois).

    Autrement, il faut créer une tâche (avec une trans pour récupérer la liste des fichiers) qui lance une sous tâche avec 2 transformations (1 pour récupérer la valeur en cours du nom de fichier) et la suivante pour compter le nombre de lignes du fichier)

    Samatar

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Merci pour ta réponse.

    J'étais passé de la 3.0.2 à la 3.0.3 mais pas à la 3.1

Discussions similaires

  1. UPDATE pas même nombre de lignes que SELECT
    Par CinePhil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/11/2008, 16h07
  2. [Oracle] Nombre de ligne affecté par un update
    Par vimanas dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/09/2006, 16h24
  3. [Oracle] Connaitre le nombre de lignes affectées par un update à l'avance
    Par lionheart33806 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 10/08/2006, 10h35
  4. [9i] Nombre de lignes affectées par un update
    Par yac dans le forum Oracle
    Réponses: 5
    Dernier message: 13/01/2006, 15h59
  5. [SYBASE] nombre de ligne impactée par UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 16h47

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