Wie kann ich die Zeichenfolge von einer Excel -Datei in Substrings zerlegen und laden?
Frage
Ich arbeite tatsächlich an einem Talendjob. Ich muss von einer Excel -Datei in eine Oracle 11g -Datenbank laden.
Ich kann nicht herausfinden, wie ich ein Feld meiner Excel -Eintragsdatei in Talend brechen und die zerfuhr in der Datenbank laden kann.
Zum Beispiel habe ich ein Feld wie dieses:
toto:12;tata:1;titi:15
Und ich muss in eine Tabelle laden, z. B. Note:
| name | grade |
|------|-------|
| toto |12 |
| titi |15 |
| tata |1 |
|--------------|
Danke im Voraus
Lösung
In einem Talend -Job können Sie verwenden tFileInputExcel
um Ihre Excel -Datei zu lesen, und dann tNormalize
um Ihre spezielle Spalte in einzelne Reihen mit einem Separator von ";" aufzuteilen. Danach verwenden Sie tExtractDelimitedFields
mit einem Separator von ":", um die normalisierte Säule in in die Spaltung zu teilen name
und grade
Säulen. Dann können Sie a verwenden tOracleOutput
Komponente zum Schreiben des Ergebnisses in die Datenbank.
Diese Lösung ist zwar ausführlicher als der von Alexr vorgeschlagene Java -Snippet, hat jedoch den Vorteil, dass sie innerhalb von Talends grafischem Programmiermodell bleibt.
Andere Tipps
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);
}
Jetzt müssen Sie implementieren dbInsert()
. Verwenden Sie es entweder mit JDBC oder mit Tools auf höherer Ebene (z. B. Hivernate, Ibatis, JDO, JPA usw.).