iteye_17867 2011-08-26 11:46
浏览 1718
已采纳

Out of range value for column 'id' at row 1问题

[code="java"]
private void execute(){
Statement st;

    try {
        //获取oracle链接
        oracleCONN=getOracleConnection();
        //获取MYSQL链接
        st = oracleCONN.createStatement();
        oracleRS=st.executeQuery("select bc.customerName,bc.landline,bc.telphone,sb.finishdate,sb.ShopCode,sb.DisCode from base_Customer bc,sale_SalesBill sb where trunc(bc.Created)=trunc(sysdate-1)and bc.saleBillid=sb.salesBillid");   
        String sql="insert into mix_end_user(name,tel,phone,time,officeName,storeName) values(?,?,?,?,?,?)";
        mySQLCONN=getMYConnection();
        ps = mySQLCONN.prepareStatement(sql);

// mySQLCONN.createStatement();
while(oracleRS.next()){
//开启事务
mySQLCONN.setAutoCommit(false);
ps.setString(1,oracleRS.getString("customerName"));
ps.setString(2, oracleRS.getString("landline"));
ps.setString(3, oracleRS.getString("telphone"));
ps.setDate(4, oracleRS.getDate("finishdate"));
ps.setString(5,oracleRS.getString("DisCode"));
ps.setString(6,oracleRS.getString("ShopCode"));
// System.out.println("insert into mix_end_user(name,tel,phone,time,officeName,storeName) values("+oracleRS.getString("customerName")+","+ oracleRS.getString("landline")+","+oracleRS.getString("telphone")+","+oracleRS.getDate("finishdate")+","+oracleRS.getString("DisCode")+","+oracleRS.getString("ShopCode")+")");
//提交
ps.executeUpdate();
mySQLCONN.commit();
}
} catch (SQLException e) {
e.printStackTrace();
//将异常信息写入配置文件
writeLOG(e);
try {
mySQLCONN.rollback();
} catch (Exception e1) {
e1.printStackTrace();
writeLOG(e);
}
}finally{
closeConnection();
}
}
[/code]
两个数据库 oracle取数据 mysql存数据
为什么回报这个错
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2983)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1585)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1500)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1485)
at copy.user.CopyUser.execute(CopyUser.java:55)
at copy.user.CopyUser.main(CopyUser.java:25)

  • 写回答

4条回答 默认 最新

  • AngelAndAngel 2011-08-26 12:34
    关注

    假如你的id是不是自增的,那么你得在insert的时候显示的插入id啊
    但是你这个没加。

    假如是自增的,你看一下自增量是多少,比如每次加1还是加多少,是不是这个设置的太大了,导致你的int不够接收假如是这样的话,你就设置bigint或者设置长度为更大(>11)就可以了。

    希望能帮到你 不懂的可以站内问我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况