java.sql.SQLException: ORA-01722: 无效数字 解决方法!
String sql4="select b_id from boss_info where username='"+username+"'";rs2=stmt.executeQuery(sql4);if(rs2.next()){ [color=#FF0000]Integer bb_id=rs2.getInt("b_id");[/color] String sql3=" insert into hotel_info(h_id,b_id,h_name,h_privence,h_city,h_address,username) values(REGISTER.nextval,?,?,?,?,?,?)"; pst=conn.prepareStatement(sql3); pst.setString(1,h_name); [color=#FF0000]pst.setInt(2,bb_id);[/color] pst.setString(3,h_privence); pst.setString(4,h_city); pst.setString(5,h_address); pst.setString(6,username);
b_id在数据库中是number类型的字段,该怎么转化这个类型啊?oracle Datebase
------解决方法--------------------------------------------------------
Integer bb_id=rs2.getInt("b_id");
pst.setInt(2,bb_id);
Integer 不等于 int
pst.setInt(2,bb_id.getInt..())
而且 number 是不是应该转换成 decimal类型
------解决方法--------------------------------------------------------
ResultSet对象返回的一个int基础类型,应该是不可以直接转化为Integer对象的吧?
------解决方法--------------------------------------------------------
单写个测试程序只执行这一句sql,把值写死分析
还不行的话 换个高版本的驱动。
------解决方法--------------------------------------------------------
会不会REGISTER.nextval是无效的数字?
------解决方法--------------------------------------------------------
------解决方法--------------------------------------------------------
你oracle中number类型给出范围没有
要是没有给就会出这个问题
要不就是你的sequence没有生效
sequence没有生效也有这个问题
仔细检查一下吧