我的要求是使用java查询将包含撇号(例如St.Mary)的值插入DB2。
为此目的,我的表有一个数据类型为Char(26)的列名,无法更改。
我使用DB2 Survival guide处理了撇号,这样:
String CityName = beanClass.getCity();
if(CityName.contains("'"))
{
CityName.replace("'","''");
}
prepStmt.setString(1, CityName);
查询看起来像:
INSERT INTO TableName(CityName) VALUES(?);
(Where values are being received from the preparedStatement(Index,String) (prepStmt.setString(int,string))
请帮我将带有撇号的值“St.Mary's”插入DB2。
感谢负荷,Varsha。
答案 0 :(得分:1)
单引号的转义字符是双引号。例如,要插入St.Mary,您需要执行
INSERT INTO TABLE VALUES ('St.Mary''s')
但是,它适用于纯SQL。这取决于你如何从Java调用它。如果列是预准备语句中的参数标记,则不需要它。
另外,如果从其他组件传递参数,可能需要转义单引号字符。
答案 1 :(得分:0)
用\'
替换任何单个撇号CityName.replace("'"" \\'&#34);
\\'结果是'因为前两个反斜杠导致\
答案 2 :(得分:0)
String value1 = "" +jsonObject.get(key)+"";
if(value1.contains("'")){
value1 = value1.replace("'", "\''");
}
value = value +"\'"+value1+"\'";
// value.replaceAll("\"", "\\" + "\"");
listofkey+=",";
value+=",";