当前位置: 代码迷 >> SQL >> SQL 异常: 索引中丢失 IN 或 OUT 参数: 1
  详细解决方案

SQL 异常: 索引中丢失 IN 或 OUT 参数: 1

热度:487   发布时间:2016-05-05 09:56:43.0
SQL 错误: 索引中丢失 IN 或 OUT 参数:: 1
以上错误的原因是:sysdate 位置没有占位符号“?”但是你在用PreparedStatement SET 参数的时候把这个位置算进去了,那么就会抛出:
SQL 错误: 索引中丢失  IN 或 OUT 参数:: 1

PreparedStatement.setXXX(INDEX,VALUE),中的INDEX是连续的123......,假如你SQL中有sysdate
这样的值或者表达式,那么在PreparedStatement设置值时它的位置是不能算的。
String addMeltSnowMaterialSQL = "insert into SNOW_MATERIAL_WAREHOUSE_IN" +				"(ID," +				"INPUT_INSTITUTION," +				"SALT," +				"SOLID_MELT_SNOW," +				"LIQUID_MELT_SNOW," +				"ORGNAME," +				"INPUT_PEOPLE," +				"INPUT_DATE," +				"IS_ADD," +				"IS_STOCK," +				"STATUS) " +				"values(?,?,?,?,?,?,?,sysdate,?,?,'1')";				pst = DBCommon.getPsm(conn, addMeltSnowMaterialSQL);		pst.setInt(1, id);		pst.setString(2, meltSnowMaterial.getInstitution());		pst.setString(3, meltSnowMaterial.getSalt());		pst.setString(4, meltSnowMaterial.getSolidMeltSnow());		pst.setString(5, meltSnowMaterial.getLiquidMeltSnow());		pst.setString(6, meltSnowMaterial.getOrgName());		pst.setString(7, meltSnowMaterial.getPeople());		pst.setString(8, meltSnowMaterial.getIsAdd());		pst.setString(9, meltSnowMaterial.getIsStock());		pst.executeUpdate();
  相关解决方案