¿Cómo romper la cadena de un archivo de Excel en subcadenas y cargarla?
Pregunta
De hecho, estoy trabajando en un trabajo de Talend. Necesito cargar desde un archivo de Excel a una base de datos Oracle 11G.
No puedo entender cómo romper un campo de mi archivo de entrada de Excel dentro de Talend y cargar la cadena rota en la base de datos.
Por ejemplo, tengo un campo como este:
toto:12;tata:1;titi:15
Y necesito cargar en una mesa, por ejemplo, grado:
| name | grade |
|------|-------|
| toto |12 |
| titi |15 |
| tata |1 |
|--------------|
Gracias por adelantado
Solución
En un trabajo de talendos, puedes usar tFileInputExcel
para leer su archivo de Excel y luego tNormalize
Para dividir su columna especial en filas individuales con un separador de ";". Después de eso, usa tExtractDelimitedFields
con un separador de ":" para dividir la columna normalizada en name
y grade
columnas. Entonces puedes usar un tOracleOutput
componente para escribir el resultado en la base de datos.
Si bien esta solución es más detallada que el fragmento de Java sugerido por Alexr, tiene la ventaja de que permanece dentro del modelo de programación gráfica de Talend.
Otros consejos
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);
}
Ahora tienes que implementar dbInsert()
. Hágalo usando JDBC o usando cualquier herramienta de nivel superior (por ejemplo, VIVERNATE, IBATIS, JDO, JPA, etc.).