你这样 如果要插入的字符串中有单引号, 那么就需要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'''); 每个单引号前面加上一个单引号“跳过” 而不进行字符串结尾处理。