如何在DB2中插入带有单撇号的值

时间:2014-06-09 12:40:13

标签: java string replace db2

我的要求是使用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。

3 个答案:

答案 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+=",";