Oracle9 报"并非所有变量都已关联"的错误 我把所有的问号都换成常量写在SQL语句里面就正常,写成"?",就报错,都找了一天啊,大家帮忙看下吧. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你再接着把memPst.setObject(1, resultSet.getString(1)); memPst.setObject(2, resultSet.getInt(5)); memPst.setObject(3, resultSet.getInt(4)); memPst.setObject(4, resultSet.getInt(4)); memPst.setObject(5, resultSet.getString(1)); memPst.setObject(6, resultSet.getInt(5));也写死了。接着测 呵呵,楼上的兄弟说的方法我测试过了,还是有问题,我写死的时候就没有问题,不过我换了种方式,搞定了.memSql = " merge into membernum using (select count(id) count from membernum where phone = " +resultSet.getString(1)+ " and ringid = "+resultSet.getInt(5)+" ) num2 on (num2.count <> 0 ) " + "when matched then update set balance = balance + "+resultSet.getInt(4)+", totalnum = totalnum + " + resultSet.getInt(4) + "when not matched then insert (id, phone,ringid,totalnum,balance)" + " values (SEQ_MEMBERINCOME.nextval, "+resultSet.getString(1)+" , "+resultSet.getInt(5)+" , " +resultSet.getInt(4)+" , "+resultSet.getInt(4)+")" ; memPst = connection.prepareStatement(memSql); memPst.execute(memSql); http://topic.csdn.net/t/20020514/13/720747.html 可能是某个值出现null。另外,不建议都用setObject你试试看用对应的比如setString,setInt,之类的,oracle的类型转换有时候不是像你想的那样,Object不能搞定一切。 难道是我眼花.. 只看到3个 ? 却set了6个参数 1. SQL语句中使用?作为参数的占位符2. 通过Statement的set方法进行赋值3. 调用execute4. 通过resultset的get获取结果你的SQL种有3个问号,即需要set 3 个参数,目前的代码中set了6个参数,所以执行时报错。 java内部类有什么缺点,会导致程序变得低效率么 java调用cmd.exe命令执行一个jar程序 转让编程书籍,5折,合肥地区 关于用SWT写的界面没有响应问题. tab控件标签上放置按钮怎么实现,谢谢 连接oracle数据库的问题 java应用程序如何写? 请教各位! 广义网络问题 关于VisualAge for Java 3.5的问题 做项目中,遇到了问题,Exception in thread "main" java.lang.NoClassDefFoundError: list中的toArray为什么报错
memPst.setObject(1, resultSet.getString(1));
memPst.setObject(2, resultSet.getInt(5));
memPst.setObject(3, resultSet.getInt(4));
memPst.setObject(4, resultSet.getInt(4));
memPst.setObject(5, resultSet.getString(1));
memPst.setObject(6, resultSet.getInt(5));
也写死了。接着测
不过我换了种方式,搞定了.memSql = " merge into membernum using (select count(id) count from membernum where phone = " +resultSet.getString(1)+
" and ringid = "+resultSet.getInt(5)+" ) num2 on (num2.count <> 0 ) " +
"when matched then update set balance = balance + "+resultSet.getInt(4)+", totalnum = totalnum + " + resultSet.getInt(4) +
"when not matched then insert (id, phone,ringid,totalnum,balance)" +
" values (SEQ_MEMBERINCOME.nextval, "+resultSet.getString(1)+" , "+resultSet.getInt(5)+" , "
+resultSet.getInt(4)+" , "+resultSet.getInt(4)+")" ;
memPst = connection.prepareStatement(memSql);
memPst.execute(memSql);
另外,不建议都用setObject
你试试看用对应的比如setString,setInt,之类的,oracle的类型转换有时候不是像你想的那样,Object不能搞定一切。
只看到3个 ? 却set了6个参数
2. 通过Statement的set方法进行赋值
3. 调用execute
4. 通过resultset的get获取结果你的SQL种有3个问号,即需要set 3 个参数,目前的代码中set了6个参数,所以执行时报错。