【10g SQL新特性】q-quote使用
在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'{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 --因為【開始界定付是多位元組,所以必須一致,特殊的就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個特殊字元作為界定符,這樣前後界定符包含了原生態字串,可讀性更好。
原文地址:http://blog.chinaunix.net/uid-7655508-id-3684042.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2214163/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10g 新特性
- 10G新特性 - AWR
- 10G新特性筆記之安裝新特性筆記
- 10G新特性筆記之備份恢復新特性筆記
- Tablespace Transporting (10G新特性)
- 10g新特性——Data Pump(轉)
- 10G新特性:BIGFILE TABLESPACE
- 10G RMAN恢復新特性
- 實戰10g新特性之RMAN TSPITR特性
- 10G新特性筆記之資料庫特性使用及HWM統計值筆記資料庫
- Oracle 10G 新特性——閃回表Oracle 10g
- 10g新特性——回滾監視
- 10G新特性筆記之FLASHBACK筆記
- 10G 新特性系列:RMAN 新的引數-PREVIEWView
- Oracle Database 10g新特性-閃回表OracleDatabase
- oracle 10g 新特性中文筆記(zt)Oracle 10g筆記
- 10g 新特性 快改變跟蹤
- 10g新特性——閃回版本查詢
- 10G 新特性系列: SYSAUX 表空間UX
- Oracle Database 10g新特性-回滾監視OracleDatabase
- 10G新特性筆記之自動管理筆記
- 10g新特性——表空間重新命名
- 23C新特性SQL防火牆 (SQL Firewall)SQL防火牆
- Oracle Database 10g新特性-閃回版本查詢OracleDatabase
- 【Flashback】10G的新特性“閃回表”清除方法
- ORACLE 10G 新特性(INCREMENTALLY UPDATED BACKUPS)學習Oracle 10gREM
- rman總結(包含10g rman中的新特性)
- 【oracle 10g R2 新特性】Asynchronous CommitOracle 10gMIT
- Oracle 10G 新特性--SQLPLUS的改進Oracle 10gSQL
- 10G新特性系列: ADDM 的報告(一)
- SQL Query Result Cache的使用和配置--Oracle 11G新特性SQLOracle
- Oracle10g新特性:使用DBMS_SQLTUNE最佳化SQLOracleSQL
- Oracle 10g R2新特性之備份和可用性特性Oracle 10g
- ABAP 740新的OPEN SQL增強特性SQL
- 23c 新特性之SQL_transpilerSQL
- Oracle SQL Developer 4.1 和 SQLcl 的新特性OracleSQLDeveloper
- SQL 2014新特性- Delayed durabilitySQL
- 12C SQL方面新特性小結SQL