PreparedStatement插入数据时异常: 插入的值对于列过大

u014656213 2014-04-24 02:55:30
代码如下:

String[] strArray = str.split("\\|");
pstmt.setString(1,strArray[0]);
pstmt.setDouble(2,Double.parseDouble(strArray[1]));
pstmt.setDouble(3,Double.parseDouble(strArray[2]));
pstmt.setString(4,strArray[3]);
pstmt.setString(5,strArray[4]);
pstmt.setString(6,strArray[5]);
pstmt.setString(7,strArray[6]);
pstmt.setInt(8,Integer.parseInt(strArray[7]));
pstmt.setInt(9,Integer.parseInt(strArray[8]));
pstmt.setString(10,strArray[9]);
pstmt.setInt(11,Integer.parseInt(strArray[10]));
pstmt.setString(12,strArray[11]);
pstmt.executeUpdate();


分割之后的字符串没有问题,我打印了strArray[i]也都能打出来,但实际set到pstmt里的只有string类型,其他的都没有set进去,报的异常是 java.sql.SQLDataException: ORA-01401: 插入的值对于列过大

我插入的时候number(10,0) 对应double
integer 对应int

请各位帮忙看看。。。

...全文
277 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
葛芮拉 2014-04-24
  • 打赏
  • 举报
回复
number是有精度的,number(10,0),改成number(10,2)试试,还要确认其他插入的String类型的数据长度小于数据库的varchar类型的长度。
tony4geek 2014-04-24
  • 打赏
  • 举报
回复
数据类型不匹配啊。
yufengdxw 2014-04-24
  • 打赏
  • 举报
回复
strArray[1] 这个值是多少啊,看看number(10,0)能放下吗?int 应该不会有问题的
EggItayi 2014-04-24
  • 打赏
  • 举报
回复
number(10,0) 表示double不合适吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧