2012-02-16 2 views
1

저는 실제로 talend job에서 일하고 있습니다. 엑셀 파일에서 oracle 11g 데이터베이스로로드해야합니다.Excel에서 문자열을 하위 문자열로 나누고로드하는 방법은 무엇입니까?

talend 내 ​​excel 항목 파일의 필드를 깨고 깨진 문자열을 데이터베이스에로드하는 방법을 알아낼 수 없습니다.

예를 들어 나는이 같은 필드를 가지고 :

toto:12;tata:1;titi:15 

그리고 예를 들어, 학년, 테이블에로드해야합니다 사전에

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

감사의

답변

3

Talend 작업에서 tFileInputExcel을 사용하여 Excel 파일을 읽은 다음 tNormalize을 사용하여 특수 열을 구분 기호가 ";"인 개별 행으로 나눌 수 있습니다. 그런 다음 tExtractDelimitedFields을 구분 기호 ":"와 함께 사용하여 정규화 된 열을 namegrade 열로 나눕니다. 그런 다음 tOracleOutput 구성 요소를 사용하여 결과를 데이터베이스에 쓸 수 있습니다.

이 솔루션은 AlexR이 제안한 Java 스 니펫보다 더 장황하지만 Talend의 그래픽 프로그래밍 모델 내에 남아있는 장점이 있습니다.

+0

감사합니다. @drmirror (+1). 나는 개인적으로 Talend에 대해 아무것도 몰랐다. 당신의 대답이 내 눈을 열었습니다. – 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 등)를 사용하십시오.

관련 문제