你這樣 如果要插入的字符串中有單引號(hào), 那么就需要skip掉。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、奇臺(tái)網(wǎng)絡(luò)推廣、成都微信小程序、奇臺(tái)網(wǎng)絡(luò)營(yíng)銷、奇臺(tái)企業(yè)策劃、奇臺(tái)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供奇臺(tái)建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
先用個(gè)簡(jiǎn)單的例子, 比如你要顯示 I'm 27 years old 作為字符串。
那么:
select 'I''m 27 yrs old' from dual; -- 這里看好: 最外層2個(gè) 單引號(hào)是說(shuō)明后面是字符串。
里面的內(nèi)容變成了 I''m ..... 用了2個(gè)單引號(hào)。 第一個(gè)是表示“跳過(guò)”, 而不作為整個(gè)字符串的結(jié)尾。 第二個(gè)是真的內(nèi)容。
所以, 你如果要插入以上的SQL整個(gè)句子作為字符串,
那么就:
insert into tableT (testcolumn)
values (' select * from abc where a=''ab'' and b=''aa'' and c=''aa''');
每個(gè)單引號(hào)前面加上一個(gè)單引號(hào)“跳過(guò)” 而不進(jìn)行字符串結(jié)尾處理。
select '''||' from dual
||正常引到引號(hào)中,就是字符了。
而單引號(hào),需要前邊再加一個(gè)單引號(hào)轉(zhuǎn)義。 ''''四個(gè)單引號(hào),前后兩個(gè)表示字符串兩端的單引號(hào),中間部分是字符串。而中間有兩個(gè)單引號(hào),第一個(gè)是轉(zhuǎn)義字符,表示把第二個(gè)轉(zhuǎn)成字符串的單引號(hào)。第二個(gè),就是外圍兩個(gè)單引號(hào)引住的實(shí)際的字符串的單引號(hào)。
您看看我列出的那個(gè)select的結(jié)果就知道了
單引號(hào):在Oracle中,應(yīng)該只使用單引號(hào)將文本和字符和日期括起來(lái),不能使用引號(hào)(包括單雙引號(hào))將數(shù)字括起來(lái)。
雙引號(hào):在Oracle中,單雙引號(hào)含義不同。雙引號(hào)被用來(lái)將包含特定字符或者空格的列別名括起來(lái)。雙引號(hào)還被用來(lái)將文本放入日期格式。
select
first_name
as
"first
name"
from
l_employees
order
by
"first
name"