你这样 如果要插入的
字符串中有
单引号, 那么就需要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''');
每个单引号前面加上一个单引号“跳过” 而不进行字符串结尾处理。
追问如果我这个语句有1页纸长,那我得多费劲啊!还有其他的方法吗?
追答有些小技巧:
比如, 可以复制粘贴其中的内容单独编辑, 然后Control+F 搜索 , 里面有个替换, 那么就用 :
'' (两个单引号) 替换 ' (一个单引号).
或者 可以写个程序去进行字符串修改。 这些都不是大问题