ORA-01008:并非所有变量都已绑定-解决办法
近期批量处理数据,后台用JAVA编写,连接Oracle数据库,程序运行报ORA-01008问题。解决这个问题时遇见的坑较多,下面复盘现象、问题提出解决办法,希望能帮到遇见同类问题的你。
调试问题:
后台代码:
/** * 插入操作的封装 * **/ public static void insertRow(String sql,List<Object> paraCondition) { // 1建立数据库连接 Connection conn=JDBCUtils.getConnection(); //2sql传入,传入的参数带变量,将SQL绑定变量处理 try { //3为sql语句赋值 PreparedStatement pstmt = conn.prepareStatement(sql); if(paraCondition!=null && paraCondition.size()>0){ for(int i=0;i<paraCondition.size();i++){ pstmt.setObject(i+1,paraCondition.get(i)); } } pstmt.execute(sql);//执行SQL }catch (SQLException e){ e.printStackTrace(); } }
解决办法:
1、要求绑定变量sql中的个数与paraCondition中的个数要一致。
2、paraCondition处理的有问题,不要有NULL值
3、注意上面代码“//执行SQL”中传入了参数“sql”,注意此处不要传参。
我遇见的坑是这三个,希望帮到寻觅原因的你。
https://www.cnblogs.com/handhead/
莫问收获,但问耕耘