[英]Java JDBC Prepared Statement not inserting single quotes (SQL Escaping)
[英]Escaping double quotes Oracle prepared Statement in Java
我检查了类似的问题,但没有可接受的解决方案。 一个表,其中在列中列出了带引号的值:
ROW COLOR_ARRAY
=== ============
1 "RED", "BLUE", "GREEN", "LIGHT-BLUE"
2 "RED", "GREEN", "LIGHT-BLUE"
我想拉出所有包含精确值“ BLUE”的行,因此,仅应返回第1行。 我准备的声明:
// must look for color wrapped in double quotes "BLUE"
String sql = "Select * from myTable where COLOR_ARRAY LIKE '%\"?\"%'";
selectColor = connection.prepareStatement(sql);
String myColor = "BLUE";
selectTags.setString(1, myColor);
rs = selectTags.executeQuery();
我收到无效的列索引错误。 我怀疑? 我准备好的语句中的标记在尝试保留我的LIKE子句中的双引号时迷路了。
我尝试使用\\\\“和\\ u0022来转义双引号,但是没有运气。
在JDBC中,不能放置占位符?
在现有的SQL字符串中; 该值必须是独立的。 JDBC会对待?
在SQL字符串中作为文字?
字符; 它只是字符串的一部分。 但是,在Java字符串中转义双引号字符是正确的。
串联?
查询字符串中带有%
SQL通配符字符串的占位符值。
String sql = "Select * from myTable where COLOR_ARRAY LIKE '%\"' || ? || '\"%'";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.