十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
單引號:在Oracle中,應該只使用單引號將文本和字符和日期括起來,不能使用引號(包括單雙引號)將數(shù)字括起來。
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司是一家服務多年做網(wǎng)站建設(shè)策劃設(shè)計制作的公司,為廣大用戶提供了成都網(wǎng)站設(shè)計、網(wǎng)站制作,成都網(wǎng)站設(shè)計,1元廣告,成都做網(wǎng)站選成都創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價比,滿足客戶不同層次的需求一站式服務歡迎致電。
雙引號:在Oracle中,單雙引號含義不同。雙引號被用來將包含特定字符或者空格的列別名括起來。雙引號還被用來將文本放入日期格式。
select
first_name
as
"first
name"
from
l_employees
order
by
"first
name"
在ORACLE中,單引號有兩個作用,一是字符串是由單引號引用,二是轉(zhuǎn)義。單引號的使用是就近配對,即就近原則。而在單引號充當轉(zhuǎn)義角色時相對不好理解???
1、從第二個單引號開始被視為轉(zhuǎn)義符,如果第二個單引號后面還有單引號(哪怕只有一個)。??????select?''''?from?dual?????----output:'??解釋:第二個單引號被作為轉(zhuǎn)義符,第三個單引號被轉(zhuǎn)義,可將sql寫成這樣更好理解:?select?'?''?'?from?dual?----output:'???
2、連接符‘||’導致了新一輪的轉(zhuǎn)義:連接符號‘||’左右的單引號沒有任何的關(guān)系,除非‘||’是作為字符串的一部分(這在動態(tài)SQL中很常見)。?
select?'name'||''''?from?dual?----output:name'??理解:||后面的作為一個字符串,即前后是',中間又是一個密集型單引號串'',因此第一個為轉(zhuǎn)義功能?select?'name'''''?from?dual?----output:name''?理解:第一個和最后一個單引號作為字符串引用符,中間四個單引號兩兩轉(zhuǎn)義??。???
舉幾個簡單例子:???一個單引號,是最正常的情況,比如:'asdfas',這代表一個字符串,顯示的內(nèi)容是?asdfas??;???兩個單引號,一般成對出現(xiàn)在一個單引號之內(nèi),表示一個單引號之內(nèi)的單引號,比如?'sdfs''123''dfsdf',這種字符串顯示的時候就是?sdfs'123'dfsdf???三個或四個單引號的情況是在一個和兩個的情況之上發(fā)展出來的,比如'asd'''||輸入值||'''',它顯示的時候內(nèi)容就是:?asd'輸入值'。?(把一對兩個單引號分開了,一部分在||之前,一部分在||之后)?(后面四個單引號分開看,中間兩個是一對--代表一對單引號之內(nèi)的一個單引號,外邊兩個是一對--代表一對單引號)
你這樣 如果要插入的字符串中有單引號, 那么就需要skip掉。
先用個簡單的例子, 比如你要顯示 I'm 27 years old 作為字符串。
那么:
select 'I''m 27 yrs old' from dual; -- 這里看好: 最外層2個 單引號是說明后面是字符串。
里面的內(nèi)容變成了 I''m ..... 用了2個單引號。 第一個是表示“跳過”, 而不作為整個字符串的結(jié)尾。 第二個是真的內(nèi)容。
所以, 你如果要插入以上的SQL整個句子作為字符串,
那么就:
insert into tableT (testcolumn)
values (' select * from abc where a=''ab'' and b=''aa'' and c=''aa''');
每個單引號前面加上一個單引號“跳過” 而不進行字符串結(jié)尾處理。
應該沒有,單引號只是一個轉(zhuǎn)義符而已,把單引號加在特殊字符前把特殊字符作為字符串來顯示
{}、[]、 這些符號可以在正則表達式中使用,不知道是不是你想要的