其中Clause在Update中不起作用但在Oracle DB中的Select中工作

时间:2017-04-04 13:13:11

标签: sql database oracle

我正在尝试执行以下更新查询

update custom_field cfe set cfe.field_value =:valueId where  cp_entity_id = :cId

更新了0行。

这不是更新任何行,但是相同的where子句与select查询一起正常工作并返回1行

select * from custom_field where cp_entity_id = :cId

另外,如果我硬编码cId参数的值,那么更新工作正常,但我正在从java程序执行它,所以我不可能硬编码值

cp_entity_id列也是外键。

2 个答案:

答案 0 :(得分:1)

试试这个,我遇到了类似的问题。 用这个 qsort查询以查找主键,然后在更新查询的where子句中使用该主键。

答案 1 :(得分:0)

here.

解释了设置参数的方法之一
PreparedStatement ps = conn.prepareStatement(
  "UPDATE Messages SET description = ?, author = ? WHERE id = ? AND seq_num = ?");

// set the preparedstatement parameters
ps.setString(1,description);
ps.setString(2,author);
ps.setInt(3,id);
ps.setInt(4,seqNum);

// call executeUpdate to execute our sql update statement
ps.executeUpdate();
ps.close();