你这样 如果要插入的字符串中有单引号, 那么就需要skip掉.
那么:
所以, 你如果要插入以上的SQL整个句子作为字符串,
那么就:
insert into tableT (testcolumn)
values (' select * from abc where a=''ab'' and b=''aa'' and c=''aa''');
每个单引号前面加上一个单引号"跳过" 而不进行字符串结尾处理.
单引号:在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来.
双引号:在Oracle中,单双引号含义不同.双引号被用来将包含特定字符或者空格的列别名括起来.双引号还被用来将文本放入日期格式.
select
first_name
as
"first
name"
from
l_employees
order
by
select '''||' from dual
||正常引到引号中,就是字符了.
而单引号,需要前边再加一个单引号转义. ''''四个单引号,前后两个表示字符串两端的单引号,中间部分是字符串.而中间有两个单引号,第一个是转义字符,表示把第二个转成字符串的单引号.第二个,就是外围两个单引号引住的实际的字符串的单引号.
您看看我列出的那个select的结果就知道了
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是字符串变量)