gpt4 book ai didi

java - Oracle SQL - 在通过 JDBC 调用的查询上重用绑定(bind)变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:17 27 4
gpt4 key购买 nike

如果我有一个类似于下面所示的查询

select first_name, author, location
from author_details
where first_name=?

那个?值在 Java 端使用

填充
statement = getConnection().prepareStatement(MY_QUERY);
statement.setString(1, name);

我想更新查询以在 where 子句中进行额外检查:

select first_name, author, location
from author_details
where first_name=? or last_name=?

我想使用与 java 代码中作为“名称”传入的值相同的值。是否可以使用相同的传入值来检查first_name和last_name,或者我是否必须在java代码上添加另一个statement.setString(2, name)条目?

我知道在 SQLPlus 中我可以声明一个变量并稍后使用它,但我不确定如何在通过 JDBC 执行的 SQL 查询上执行相同的操作

最佳答案

JDBC(至少对于 Oracle)为 PreparedStatement 查询中的所有 ? 占位符创建不同的绑定(bind)变量名称。您不能让一个 setString 调用覆盖多个绑定(bind)变量。这意味着您必须在第二个参数上添加对 setString 的另一个调用,即使您传入相同的 name 变量也是如此。

关于java - Oracle SQL - 在通过 JDBC 调用的查询上重用绑定(bind)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22567188/

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