2012-02-16 3 views
1

Я на самом деле работаю над талантливой работой. Мне нужно загрузить из файла excel в базу данных oracle 11g.Как разбить строку из файла excel на подстроки и загрузить его?

Я не могу понять, как разбить поле моего файла ввода excel внутри talend и загрузить сломанную строку в базу данных.

Например, у меня есть поле, как это:

toto:12;tata:1;titi:15 

И мне нужно, чтобы загрузить в таблицу, например, класс:

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

Спасибо-х заранее

ответ

3

В задании Talend вы можете использовать tFileInputExcel для чтения вашего файла Excel, а затем tNormalize, чтобы разделить специальный столбец на отдельные строки с разделителем «;». После этого используйте tExtractDelimitedFields с разделителем «:», чтобы разбить нормализованный столбец на столбцы name и grade. Затем вы можете использовать компонент tOracleOutput для записи результата в базу данных.

Хотя это решение является более подробным, чем фрагмент Java, предложенный AlexR, он имеет то преимущество, что он остается в модели графического программирования Talend.

+0

Спасибо, @drmirror (+1). Я лично ничего не знал о Таленде. Ваш ответ открыл мне глаза. – AlexR

2
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); 
} 

Теперь вы должны реализовать dbInsert(). Сделайте это либо с помощью JDBC, либо с помощью инструментов более высокого уровня (например, Hivernate, iBatis, JDO, JPA и т. Д.).