您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Oracle 10g SQL中q-quote怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在Oracle中,字符串的字面量如果含有單引號,那么必須轉(zhuǎn)義,而且轉(zhuǎn)義符是單引號',這樣加上表示字符串字面量的外層'',那么勢必要寫很多單引號,不僅可讀性降低,而且容易出錯。當(dāng)然,使用chr(39),也可以代替引號,可能比寫多個單引號更好,可讀性強,但是畢竟這種寫法不是很常見。SO,在10g中,Oracle引入了q-quote的用法。
常規(guī)字符字面量內(nèi)單引號的使用:
dingjun123@ORADB> select ''' str from dual; ERROR: ORA-01756: 引號內(nèi)的字符串沒有正確結(jié)束 --要使用轉(zhuǎn)義,兩個單引號表示一個單引號 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特性。允許按照指定規(guī)則也就是Q或q開頭(如果是national character literals,那就是N或n放在Q或q之前),然后'界定符號原始字面量界定符號',使用規(guī)則很簡單:
1) q-quote界定符可以是除了TAB,空格,回車外的任何單字節(jié)或多字節(jié)字符。
2) 除了單字節(jié)的的開始界定符是[,{,<,(,那么結(jié)束界定符必須是],},>,) 其他開始界定符與結(jié)束界定符必須一致
如:
--4個特殊單字節(jié)開始界定符是[,{,<,(,結(jié)束界定符必須是],},>,) dingjun123@ORADB> SELECT q'[a'bc]' str FROM dual; STR ---- a'bc 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'(a'bc)' str FROM dual; STR ---- a'bc --因為【開始界定付是多字節(jié),所以必須一致,特殊的就4個單字節(jié)界定符 dingjun123@ORADB> SELECT q'【a'bc[' FROM dual; ERROR: ORA-01756: 引號內(nèi)的字符串沒有正確結(jié)束 dingjun123@ORADB> SELECT q'【a'bc【' FROM dual; Q'【 ---- a'bc --因為]不是4個特殊界定符的開始界定符 dingjun123@ORADB> SELECT q']a'bc[' FROM dual; ERROR: ORA-01756: 引號內(nèi)的字符串沒有正確結(jié)束 dingjun123@ORADB> SELECT q']a'bc]' FROM dual; Q']A ---- a'bc --其他非特殊的4個開始界定符的要求開始與結(jié)束一致 --a是界定符 dingjun123@ORADB> SELECT q'ab'cda' str FROM dual; STR ---- b'cd --A是界定符,但是結(jié)束的是a,不一致 dingjun123@ORADB> SELECT q'Ab'cda' str FROM dual; ERROR: ORA-01756: 引號內(nèi)的字符串沒有正確結(jié)束 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個特殊字符作為界定符,這樣前后界定符包含了原生態(tài)字符串,可讀性更好。
感謝各位的閱讀!關(guān)于“Oracle 10g SQL中q-quote怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。