2012-02-02 18 views
-2

抽出データとデータベースに挿入する新しい質問を開きます。私はコードを変更してこのようになりましたが、まだ動作しません。フラットファイルからデータを取得し、Javaのデータベースにデータを挿入します

フラットファイル:

DT|00000001|TMDWH|UNIFI|00380520160|MAH SIEW YIN|11 |JALAN PP 2/8|TAMAN PUTRA PRIMA|PUCHONG|SELANGOR|47100|MALAYSIA|801110-14-5498||||||VOBB||A||11|JALAN PP 2/8|||TAMAN PUTRA PRIMA 

DT|00000002|TMDWH|UNIFI|00322012091|JUNITA BINTI JAMAL|6 10 KONDOMINIUM FAJARIA|JALAN PANTAI BARU|KUALA LUMPUR|KUALA LUMPUR|WILAYAH PERSEKUTUAN|59200|MALAYSIA|800129-09-5078||||||VOBB||A|||JALAN PANTAI BARU|6|KONDOMINIUM FAJARIA|KUALA LUMPUR  

プログラム:あなたが実際に1行のフィールドの二重の量を挿入しようとしている

public void massageData(String tmp) { 
    String[] fields = tmp.replace("\"", " ") 
         .replace("\'","\'\'") 
         .trim() 
         .split("\\s*\\|\\s*"); 

Connection conn = null; 
ResultSet rs = null; 
PreparedStatement stmt = null; 

String actualMSISDN = parseMSISDN(fields[5]); 

    if (actualMSISDN.length() > 8) { 
     String [] aNo = getAreaCode(actualMSISDN).split("\\|"); 
     field[0] = getiCtr(parseMSISDN(fields[5])); 

     String stateCode = lookupStateCode(State); 
     String sQuery = "insert into DATA_999 (,RecordType,RecordNumber,SourceSystemApplicationId,TargetApplicationId,TelNo,Name,HouseNo,StreetName,AppartmentSuite,TownCity,State,PostalCode,Country,NewIC,OldIC,PassportNo,BRN,LatitudeDecimal,LongitudeDecimal,ServiceType,IndicatorType,CreateDate,Filler,Cr_Nl,HouseNo_New,LotNo_New,StreetName_New,AptNo_New,BuildingName_New,LowIDRange,HighIDRange,SectionName) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; 
     try { 
      conn = ds.getConnection(); 
      stmt = conn.prepareStatement(sQuery); 

      int col = 0; 
      for (String field : fields) { 
       stmt.setString(++col, field); // Note: SQL API is 1-based (not zero-based) 
      } 

      int dbStat = stmt.executeUpdate(); 
      conn.close(); 
     } catch (SQLException s){ 
      logger.error(s.getMessage()); 
     } 
     finally { 
      try {if (stmt != null) stmt.close();} catch (SQLException e) {} 
      try {if (conn != null) conn.close();} catch (SQLException e) {} 
     } 
    } 
} 
+0

各行のフィールドがデータベーステーブルの列にどのようにマップされるのかご質問ください。 –

+1

スローされた例外を送信できますか? 'DATA_999'テーブルのDDLも高く評価されています。 – frm

+1

よくある質問http://stackoverflow.com/faq –

答えて

2

。また、SQLクエリでエラーが発生しているようです:最初のフィールドは存在せず、カンマしかありません。

あなた自身が何もしていないようにも思えます。人々があなたに与えるアドバイスを使用し、コードを変更し、うまくいかない場合は新しい質問を作成します。

+0

親愛なるKurt Du Bois、私はすでにそれを変更しますが、まだ動作しません..他のアイデア? – Siti

関連する問題