对,确实是引号引起的。我刚才找到一份资料上说:--------------------- [Q]如何插入单引号到数据库表中 [A]可以用ASCII码处理,其它特殊字符如&也一样,如 insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符' 或者用两个单引号表示一个 or insert into t values('I''m'); -- 两个''可以表示一个' ---------------------但我的实际情况是这样的,这种书写形式的数据是从数据库中导出来的,不能手工修改,现在要把它插入到新的数据库中。请问有什么好的解决办法?我用的程序语言是Java。
[Q]如何插入单引号到数据库表中
[A]可以用ASCII码处理,其它特殊字符如&也一样,如
insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'
或者用两个单引号表示一个
or insert into t values('I''m'); -- 两个''可以表示一个'
---------------------但我的实际情况是这样的,这种书写形式的数据是从数据库中导出来的,不能手工修改,现在要把它插入到新的数据库中。请问有什么好的解决办法?我用的程序语言是Java。
-----------
问题出现在你拼串的过程中未对"'"转义,从数据库中取出的数据不用修改直接就能存到数据库中。
Visual_Studio_Net(打鼠英雄) 说的是对的,单引号双写可以表示一个单引号,也可以用chr(39)来表示单引号
public class WellFormatedString {
private static String wildcardTransform(String src, String neededReplace, String usedToReplace) {
StringBuffer temp = new StringBuffer(src.replaceAll(neededReplace, usedToReplace));
return new String(temp);
}
}