Question

Je travaille actuellement sur un emploi de talend. Je besoin de charger à partir d'un fichier Excel à une base de données 11g d'Oracle.

Je ne peux pas comprendre comment briser un champ de mon fichier d'entrée Excel et dans les talend charger la chaîne brisée dans la base de données.

Par exemple, j'ai un champ comme ceci:

toto:12;tata:1;titi:15

Et je besoin de charger dans une table, par exemple qualité:

| name | grade |
|------|-------|
| toto |12     |
| titi |15     |
| tata |1      |
|--------------|

Merci à l'avance de

Était-ce utile?

La solution

Dans un emploi Talend, vous pouvez utiliser tFileInputExcel pour lire votre fichier Excel et tNormalize puis diviser votre colonne spéciale en lignes individuelles avec un séparateur de « ; ». Après cela, l'utilisation tExtractDelimitedFields avec un séparateur « : » pour diviser la colonne normalisée dans les colonnes de name et grade. Ensuite, vous pouvez utiliser un composant tOracleOutput pour écrire le résultat à la base de données.

Bien que cette solution est plus prolixe que Java extrait proposé par Alexr, il a l'avantage qu'il reste dans le modèle de programmation graphique de Talend.

Autres conseils

for(String pair : str.split(";")) {
    String[] kv = pair.split(":");
    // at this point you have separated values
    String name = kv[0];
    String grade = kv[1];

    dbInsert(name, grade);
}

Maintenant, vous devez mettre en œuvre dbInsert(). Faites-le soit en utilisant JDBC ou à l'aide d'outils de niveau supérieur (par exemple Hivernate, iBatis, JDO, JPA, etc.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top