你这样 如果要插入的字符串中有单引号, 那么就需要skip掉。
先用个简单的例子, 比如你要显示 I'm 27 years old 作为字符串。
那么:
select 'I''m 27 yrs old' from dual; --> 这里看好: 最外层2个 单引号是说明后面是字符串。
里面的内容变成了 I''m ..... 用了2个单引号。 第一个是表示“跳过”, 而不作为整个字符串的结尾。 第二个是真的内容。
所以, 你如果要插入以上的SQL整个句子作为字符串,
那么就:
insert into tableT (testcolumn)
values (' select * from abc where a=''ab'' and b=''aa'' and c=''aa''');
每个单引号前面加上一个单引号“跳过” 而不进行字符串结尾处理。
复制粘贴其中的内容,然后单独编辑, 接着Control+F 搜索 , 里面有个替换, 那么就用 : 两个单引号替换一个单引号,或者可以写个程序去进行字符串修改。
select * from abc where a='ab' and b='aa' and c='aa' 换成单引号由一个换成两个
select * from abc where a=''ab'' and b=''aa'' and c=''aa'';
String sql = "INSERT INTO info (value) VALUES('" + value + "')";(value是字符串变量)
select * from abc where a='ab' and b='aa' and c='aa'
换成单引号由一个换成两个
select * from abc where a=''ab'' and b=''aa'' and c=''aa''