并非所有变量已绑定(ora 01008 并非所有变量都已绑定)

http://www.itjxue.com  2023-03-03 06:21  来源:未知  点击次数: 

SQL参数异常或者SQL语句语法错误,并非所有变量都已绑定 执行错误

里面有二个变量

ai.rec_staus= ?

TO_DATE(?,

你调用时,要将实际值传进去,才行。

怎么解决ORA-01008:并非所有变量都已绑定

参数位的设定值不对。

sSQL = "insert into psymmetrical"

+ "(puid,frockpuid,frockid,frockname,symmetricalid,symmetricalfrockid,symmetricalfrockname," +

"symmetricaldate,temp1,temp2,temp3,temp4,temp5,createUser,createUserID)"

+ " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

stmt = conn.prepareStatement(sSQL);

stmt.setString(1,SyObject.puid);

stmt.setString(1,SyObject.frockpuid); // 这里参数位

stmt.setString(1,SyObject.frockId); //还有这里参数位

stmt.setString(4,SyObject.frockName);

stmt.setString(5,SyObject.symmetricalId);

stmt.setString(6,SyObject.symmetricalFrockId);

stmt.setString(7,SyObject.symmetricalFrockName);

stmt.setString(8,SyObject.symmetricalDate);

stmt.setString(9,SyObject.temp1);

stmt.setString(10,SyObject.temp2);

stmt.setString(11,SyObject.temp3);

stmt.setString(12,SyObject.temp4);

stmt.setString(13,SyObject.temp5);

stmt.setString(14,SyObject.createUser);

stmt.setString(15,SyObject.createUserID);

stmt.executeQuery();

Java preparestatement 报错 java.sql.SQLException: ORA-01008: 并非所有变量都已绑定

//PreparedStatement?不是你这样用的改成这样

PreparedStatement?ps=?con.prepareStatement("UPDATE?CUSTOMER?SET?MONEY?=?MONEY-??WHERE?ID?=??");

ps.setDouble(1,?money);

ps.setInt(2,?id2);

ps.executeUpdate();

像你这样ps.execute("UPDATE CUSTOMER SET MONEY = MONEY-? WHERE ID = ?");这个sql就直接执行了。所有?的值还没绑定,后面的ps.set其实已经没用了已经执行了明白了吧。

有问题请追问。

(责任编辑:IT教学网)

更多