共計(jì) 1976 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
這篇文章給大家分享的是有關(guān) Oracle 10g SQL 中 q -quote 怎么用的內(nèi)容。丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨丸趣 TV 小編過來看看吧。
在 Oracle 中,字符串的字面量如果含有單引號(hào),那么必須轉(zhuǎn)義,而且轉(zhuǎn)義符是單引號(hào) , 這樣加上表示字符串字面量的外層 , 那么勢(shì)必要寫很多單引號(hào),不僅可讀性降低,而且容易出錯(cuò)。當(dāng)然,使用 chr(39), 也可以代替引號(hào),可能比寫多個(gè)單引號(hào)更好,可讀性強(qiáng),但是畢竟這種寫法不是很常見。SO, 在 10g 中,Oracle 引入了 q -quote 的用法。
常規(guī)字符字面量?jī)?nèi)單引號(hào)的使用:
dingjun123@ORADB select str from dual;
ERROR:
ORA-01756: 引號(hào)內(nèi)的字符串沒有正確結(jié)束
– 要使用轉(zhuǎn)義,兩個(gè)單引號(hào)表示一個(gè)單引號(hào)
dingjun123@ORADB select str from dual;
S
–
dingjun123@ORADB select a str from dual;
STR
—
a
另外可以使用 CHR(39)作為引號(hào)來拼湊,比較簡(jiǎn)潔。
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 之前),然后 界定符號(hào)原始字面量界定符號(hào) , 使用規(guī)則很簡(jiǎn)單:
1) q-quote 界定符可以是除了 TAB, 空格,回車外的任何單字節(jié)或多字節(jié)字符。
2) 除了單字節(jié)的的開始界定符是 [,{, ,(,那么結(jié)束界定符必須是],}, ,) 其他開始界定符與結(jié)束界定符必須一致
如:
–4 個(gè)特殊單字節(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
– 因?yàn)椤鹃_始界定付是多字節(jié),所以必須一致,特殊的就 4 個(gè)單字節(jié)界定符
dingjun123@ORADB SELECT q【a bc[FROM dual;
ERROR:
ORA-01756: 引號(hào)內(nèi)的字符串沒有正確結(jié)束
dingjun123@ORADB SELECT q【a bc【FROM dual;
Q【
—-
a bc
– 因?yàn)閉不是 4 個(gè)特殊界定符的開始界定符
dingjun123@ORADB SELECT q ]a bc[FROM dual;
ERROR:
ORA-01756: 引號(hào)內(nèi)的字符串沒有正確結(jié)束
dingjun123@ORADB SELECT q ]a bc] FROM dual;
Q ]A
—-
a bc
– 其他非特殊的 4 個(gè)開始界定符的要求開始與結(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: 引號(hào)內(nèi)的字符串沒有正確結(jié)束
dingjun123@ORADB SELECT q Ab cdA str FROM dual;
STR
—-
b cd
–+ 號(hào)是界定符
dingjun123@ORADB SELECT q +b cd+ str FROM dual;
STR
—-
b cd
– 單引號(hào)是界定符
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
一般使用的時(shí)候,都是使用 4 個(gè)特殊字符作為界定符,這樣前后界定符包含了原生態(tài)字符串,可讀性更好。
感謝各位的閱讀!關(guān)于“Oracle 10g SQL 中 q -quote 怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!