Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带Oracle DB的JDBC-使用具有相似条件的参数标记_Java_Sql_Oracle_Jdbc - Fatal编程技术网

Java 带Oracle DB的JDBC-使用具有相似条件的参数标记

Java 带Oracle DB的JDBC-使用具有相似条件的参数标记,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,在带有Oracle DB的JDBC中,我想检索名字以特定字母开头的员工。如何在类似条件下使用参数标记“?”setXXX()方法在我将其放在一个引号中时没有看到它 例: 将绑定值与通配符连接: "SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE FIRST_NAME like ? || '%'" 您还可以使用以下内容明确检查第一个字母: "SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPL

在带有Oracle DB的JDBC中,我想检索名字以特定字母开头的员工。如何在类似条件下使用参数标记“?”
setXXX()
方法在我将其放在一个引号中时没有看到它

例:


将绑定值与通配符连接:

"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE FIRST_NAME like ? || '%'"
您还可以使用以下内容明确检查第一个字母:

"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SUBSTR(FIRST_NAME, 1, 1) = ?"

但这可能效率较低(除非添加基于函数的索引)。

将绑定值与通配符连接起来:

"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE FIRST_NAME like ? || '%'"
您还可以使用以下内容明确检查第一个字母:

"SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SUBSTR(FIRST_NAME, 1, 1) = ?"

但这可能效率较低(除非您添加基于函数的索引)。

通常的方法是在“setX”调用中设置%,因此您的查询变成
从名类似的员工处选择名、姓、工资
,然后
。setString(1,firstChar+“%”)

另一种选择是@Alex Poole回答:使用
WHERE FIRST_NAME,比如(?| |'%')


注意:此答案已编辑:查询末尾包含错误的%;它已被删除。

通常的方法是在“setX”调用中设置%,因此您的查询将变成
选择FIRST\u NAME、LAST\u NAME、来自FIRST\u NAME like?的员工的薪水,然后
.setString(1,firstChar+“%”)

另一种选择是@Alex Poole回答:使用
WHERE FIRST_NAME,比如(?| |'%')


注意:此答案已编辑:查询末尾包含错误的%;它已被删除。

最终找到了,但肯定有更好的方法,那部剧也是rzwitserloot的方法……最终找到了,但肯定有更好的方法,那部剧也是rzwitserloot的方法……不过你不应该在语句中仍然保留%的,对吧?
比如?%
不会起作用。
%
必须是字符串文本,因此
?| |'%”
是唯一有效的方法。不过,您不应该在语句中仍然包含%,对吗?
就像?%
不起作用。
%
必须是字符串文本,因此
?| |'%”是唯一有效的方法。