I am inserting data into temp table in MYSQL database.I have given size of 'Phone' column as VARCHAR(20) and have inserted data of exactly 10 character and it is constant.
Here is my code:
java.sql.PreparedStatement insertStmt = null;
String insertQuery = "insert into "+tableName+"(";
for(String col : columnList){
insertQuery+=col+",";
}
insertQuery = insertQuery.substring(0,insertQuery.lastIndexOf(","));
insertQuery+=") values (";
for(String col : columnList){
insertQuery+="?,";
}
insertQuery = insertQuery.substring(0,insertQuery.lastIndexOf(","));
insertQuery+=")";
insertStmt = mysqlConn.prepareStatement(insertQuery);
while(rs.next())
{
for(int j=1;j<=columnList.size();j++)
{
insertStmt.setString(j,rs.getString(j).trim());
System.out.println(rs.getString(j).trim());
}
insertStmt.addBatch();
i++;
}
insertStmt.executeBatch();
mysqlConn.setAutoCommit(true);
rs = null;
and i am getting below error :
java.sql.BatchUpdateException: Data truncation: Data too long for column 'Phone' at row 1
Completed Temp tables 1&2
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1269)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:955)
at MultipleDataExtraction.addDataToTempTable(MultipleDataExtraction.java:132)
at MultipleDataExtraction.addDataToFinalTempTable(MultipleDataExtraction.java:94)
Table definition :
EmpNo varchar(15) YES NULL, Name varchar(18) YES NULL, Address varchar(40) YES NULL, Phone varchar(20) YES NULL, Age varchar(4) YES NULL, DeptNo varchar(20) YES NULL
Insert statement:
insert into temp__final_table(Name,Address,Phone,EmpNo,Age,DeptNo) values ('Clerk#000000959','Skye Norling','2112 Ravine Drive','7091581728','Clerk#000000959','26')
Please help..