请教关于jsp调用oracle存储过程出现的问题!万分感谢!
<%
String no1=request.getParameter( "no1 ");
String no2=request.getParameter( "no2 ");
int no3=Integer.parseInt(request.getParameter( "no3 "));
CallableStatement smt=null;
String strSQL= " ";
Connection con=dblink.connection();
strSQL = "{call vote02.PROC_FAKE_359(?,?,?)} ";
smt=con.prepareCall(strSQL);
//设置输入参数
smt.setString(1,no1);
smt.setString(2,no2);
smt.setInt(3,no3);
smt.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);//登记输出参数
try{
boolean flag = smt.execute(strSQL);
}catch(Exception e){out.print( "err: "+e.toString());}
存储过程是可以运行的。但用jsp调用后报错:ORA-01008: not all variables bound
------解决方案--------------------call vote02.PROC_FAKE_359(?,?,?)这里的sql命名只有三个参数,是sql写错了吧?
------解决方案--------------------存储过程有几个参数就几个问号.少一个
------解决方案--------------------strSQL = "{?=call vote02.PROC_FAKE_359(?,?,?)} ";
------解决方案--------------------1. 应该是四个问号:strSQL = "{?=call vote02.PROC_FAKE_359(?,?,?,?)} ";
2. execute不加参数:boolean flag = smt.execute();
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html