一句話概括
1.oracle10g 之後可以使用q'限定符***'***x限定符' 方式代替轉義符號功能
2.限定可以是任一單位元組符號,括號,字母數字都可以,但開始限定符必須與結束限定符一致,除了3中4中特例
3.開始是4種特殊限定符[,,>,)---解釋如果使用]為開始限定符,那結束限定符也必須是]
在oracle中,字串的字面量如果含有單引號,那麼必須轉義,而且轉義符是單引號',這樣加上表示字串字面量的外層'',那麼勢必要寫很多單引號,不僅可讀性降低,而且容易出錯。當然,使用chr(39),也可以代替引號,可能比寫多個單引號更好,可讀性強,但是畢竟這種寫法不是很常見。so,在10g中,oracle引入了q-quote的用法。
常規字元字面量內單引號的使用:
dingjun123@oradb> select ''' str from dual;
error:
ora-01756: 引號內的字串沒有正確結束
--要使用轉義,兩個單引號表示乙個單引號
dingjun123@oradb> select '''' str from dual;s-
'dingjun123@oradb> select '''a''' str from dual;
str---
'a'
另外可以使用chr(39)作為引號來拼湊,比較簡潔
。dingjun123@oradb> select 'it'||chr(39)||' a cat' str from dual;
str---------
it' a cat
雖然使用chr(39),但是看起來還是很麻煩,所以10g引入了q-quote特性。
允許按照指定規則也就是q或q開頭(如果是national character literals,那就是n或n放在q或q之前)
,然後'界定符號
原始字面量
界定符號
',使用規則很簡單:
1) q-quote界定符可以是除了tab,空格,回車外的任何單位元組或多位元組字元。
2) 除了單位元組的的開始界定符是[,,>,) 其他開始界定符與結束界定符必須一致
如:--4個特殊單位元組開始界定符是
[,,>,)
dingjun123@oradb> select q'[a'bc]' str from dual;
str----
a'bc
dingjun123@oradb> select q'' str from dual;
str----
a'bc
dingjun123@oradb> select q'' str from dual;
str----
a'bc
dingjun123@oradb> select q'(a'bc)' str from dual;
str----
a'bc
--因為【開始界定付是多位元組,所以必須一致,特殊的就4個單位元組界定符
dingjun123@oradb> select q'【a'bc[' from dual;
error:
ora-01756: 引號內的字串沒有正確結束
dingjun123@oradb> select q'【a'bc【' from dual;
q'【----
a'bc
--因為]不是4個特殊界定符的開始界定符
dingjun123@oradb> select q']a'bc[' from dual;
error:
ora-01756: 引號內的字串沒有正確結束
dingjun123@oradb> select q']a'bc]' from dual;
q']a
----
a'bc
--其他非特殊的4個開始界定符的要求開始與結束
一致--a是界定符
dingjun123@oradb> select q'ab'cda' str from dual;
str----
b'cd
--a是界定符,但是結束的是a,不一致
dingjun123@oradb> select q'ab'cda' str from dual;
error:
ora-01756: 引號內的字串沒有正確結束
dingjun123@oradb> select q'ab'cda' str from dual;
str----
b'cd
--+號是界定符
dingjun123@oradb> select q'+b'cd+' str from dual;
str----
b'cd
--單引號是界定符
dingjun123@oradb> select q''ab'c'' from dual;
q''a
----
ab'c
--national character literals
dingjun123@oradb> select nq'' str from dual;
str----------
a'b'c
dingjun123@oradb> select nq'' str from dual;
str----------
a'b'c
dingjun123@oradb> select nq'' str from dual;
str----------
a'b'c
dingjun123@oradb> select nq'' str from dual;
str----------
a'b'c
一般使用的時候,都是使用4個特殊字元作為界定符,這樣前後界定符包含了原生態字串,可讀性更好。
格式限定符中的轉義
格式限定符中往往有一些字母代表特點的意思 比如,在datetime.tostring中,y 年,m代表月,等等 那麼如果tostring的結果我本身就需要這些字元又怎麼辦呢?此時就需要使用轉義字元,而且這個轉義標記就是我們熟悉的 datetime now datetime.now now.tostr...
const限定符用法整理
1 const的來由 定義一種變數,我們希望防止程式不小心改變變數的值。因此產生了const限定符。2 初始化 由於const物件一旦建立就不可以改變,所以const物件必須進行初始化 只能在const型別的物件上執行不改變內容的操作,其中一種就是初始化。也就是說,即使拿乙個const物件去初始化另...
引用限定符
通常,我們在乙個物件上呼叫成員函式,而不管該物件是乙個左值還是乙個右值。例如 string s1 a value s2 another auto n s1 s2 find a 此例中,我們在乙個string右值上呼叫find成員,該string右值是通過連線兩個 string 而得到的。有時,右值的...