gpt4 book ai didi

java - 这是发送给 Oracle 的正确查询吗

转载 作者:搜寻专家 更新时间:2023-10-30 21:39:35 25 4
gpt4 key购买 nike

UPDATE MY_TABLE SET COL_1=?, COL_2=?其中 COL_3=? AND COL_4=?

然后我将数组中准确数量的值发送到语句(在我的例子中:4)。这样做我得到异常:在索引处缺少 IN 或 OUT 参数::4

注意:我认为我们不能做 SET COL_1=?,COL_2=? 我们需要做 SET COL_1='DESIRED_VALUE',COL_2='DESIRED_VALUE' 是这个我的误解?

Java代码

StringBuilder updateQuery=new StringBuilder("UPDATE MY_TABLE SET COL_1=?, COL_2=? where BOOKMARKID_ACT=? AND DIMID_ACT=?");         
ArrayList<Object> alObjectData=new ArrayList<Object>();
alObjectData.add("VALUE1");
alObjectData.add("VALUE2");
alObjectData.add("VALUE3");
alObjectData.add("VALUE4");
dpQuery.executeUpdate(connTemp, updateQuery.toString(), alObjectData);

最佳答案

我想你想创建一个PreparedStatement。它应该看起来像这样:

// con is your active connection

String sqlStatement = "UPDATE MY_TABLE SET COL_1=?, COL_2=? where BOOKMARKID_ACT=? AND DIMID_ACT=?";
PreparedStatement prest = con.prepareStatement(sqlStatement);
prest.setString(1, valueFirstParam);
prest.setString(2, valueSecondParam);
prest.setString(3, valueThirdParam);
prest.setString(4, valueFourthParam);
prest.executeUpdate();

你还应该在类的顶部添加这一行

import java.sql.*;

PreparedStatements 避免您的代码遭受 sql 注入(inject)。

more on this link

关于java - 这是发送给 Oracle 的正确查询吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com