Oracle Q-quote delimiter Quote(q) 字串原樣輸出
在sql查詢中,我們經常需要原樣輸出字串,如果字串中含有大量的單引號、雙引號或者特殊字元,那麼需要用單引號轉義拼接字串,這樣會非常的麻煩。 oracle提供了一個Q-quote的表示式來原樣輸出字串。
在SQL或者PLSQL中如果要表達一個帶有特殊字元的字串時,通常要用‘’包裝起來。但如果字串本身包含‘或者“這樣的字元,那麼實現起來有點繁瑣。
比如:My Name is ‘Ma Yu Ping’
用SQL實現:
SQL> select ‘My Name Is ”Ma Yu Ping”’ names from dual;
NAMES
———————————————-
My Name Is ‘Ma Yu Ping’
SQL> select ‘My Name Is "Ma Yu Ping"’ names from dual;
NAMES
———————————————-
My Name Is "Ma Yu Ping"
在Oracle中,single-quote(‘)是一個表示字串的關鍵字。所以在字串中用兩個”表示一個實際的單引號字元。所有才會有了上面第一條SQL的’My Name Is ”Ma Yu Ping”’ 。雙引號“被識別為一個實際的的字串,第二條sql中的雙引號不用括引。其實Oracle提供了一個Q-quote的表示式,用來簡化SQL或PLSQL中字串的表示。
SQL> select q’[My Name Is "Ma Yu Ping"]‘ names from dual;
NAMES
———————————————-
My Name Is "Ma Yu Ping"
SQL> select q’[My Name Is 'Ma Yu Ping']‘ names from dual;
NAMES
———————————————-
My Name Is ‘Ma Yu Ping’
語法很簡單,必須將要表示的字串用一對特殊字元括起來,這對字元必須一致。
SQL> select q’[My Name Is 'Ma Yu Ping'|' names from dual;
ERROR:
ORA-01756: 引號內的字串沒有正確結束
SQL> select q'|My Name Is 'Ma Yu Ping'|' names from dual;
NAMES
----------------------------------------------
My Name Is 'Ma Yu Ping'
常用簡化的寫法,比如一個where c='d'的產量表示式的表示方法。
SQL> select 'where c=''d''' from dual; --老的寫法
'WHEREC=''D'''
----------------------
where c='d'
SQL> select 'where c='d'' from dual; --原則的寫法受’表示式的影響出錯
select 'where c='d'' from dual
*
第 1 行出現錯誤:
ORA-00923: FROM keyword not found where expected
SQL> select q'[where c='d']‘ from dual; --使用q-quote表示式的寫法
Q’[WHEREC='D']‘
———————-
where c=’d’
SELECT Q'[I'm a boy,my name is 'david']' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'(I'm a boy,my name is 'david')' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'{I'm a boy,my name is 'david'}' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'|I'm a boy,my name is 'david'|' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'aI'm a boy,my name is 'david'a' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'2I'm a boy,my name is 'david'2' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'@I'm a boy,my name is 'david'@' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'*I'm a boy,my name is 'david'*' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'#I'm a boy,my name is 'david'#' FROM DUAL; --結果:I'm a boy,my name is 'david'
SELECT Q'[[@#$%^&*~?/" ']]' FROM DUAL; --結果:[@#$%^&*~?/" ']
oracle本身預設的是單引號,但是在大家寫儲存過程或者寫SQL語句時,有時候需要拼SQL或者是SQL的值裡需要傳入含單引號的值,此時就需要使用兩個單引號"''"來進行轉義,其實oracle本身提供了這種轉換預設單引號為其他標識的方法那就是——"q"
q [Oracle's quote operator]
q'c text-to-be-quoted c' c is a single character (called the quote delimiter).
With the ?quote operator? apostrophes don't have to
be doubled:
SQL> q'#Oracle's quote operator#' from dual;Q'#ORACLE'SQUOTEOPERATO ----------------------- Oracle's quote operator
About Me
...............................................................................................................................
● 本文整理自網路
● 本文在itpub(http://blog.itpub.net/26736162)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新
● 本文pdf版及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/
● QQ群:230161599 微信群:私聊
● 聯絡我請加QQ好友(642808185),註明新增緣由
● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解
● 版權所有,歡迎分享本文,轉載請保留出處
...............................................................................................................................
拿起手機使用微信客戶端掃描下邊的左邊圖片來關注小麥苗的微信公眾號:xiaomaimiaolhr,掃描右邊的二維碼加入小麥苗的QQ群,學習最實用的資料庫技術。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2135631/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【10g SQL新特性】q-quote使用SQL
- Oracle select 語句字串拼接小例項-quote使用Oracle字串
- tp5 前端程式碼原樣輸出 html原始碼輸出 原始碼被輸出前端HTML原始碼
- 字串指標的輸出字串指標
- 字串倒序輸出字串
- ncurses輸出函式:字元+字串的輸出函式字元字串
- 05:輸出親朋字串字串
- oracle plsql之動態sql_輸出拼接的長字串OracleSQL字串
- 字串拼接格式化輸出字串
- 字串、整數倒序輸出字串
- 求大家幫助,Jmeter 變數為 null 時,輸出的是變數名,如何不輸出變數名原樣輸出 null?JMeter變數Null
- easyui-datagrid行資料field原樣輸出html標籤UIHTML
- 輸入一段字串,去除字串中重複的字元,並輸出字串字元
- python字串格式化輸出Python字串格式化
- 字串中大小寫轉換輸出字串
- 【Python】格式化字串輸出Python字串
- Python 字串格式化輸出方式Python字串格式化
- js字串以鍵盤打字方式輸出:JS字串
- 擷取字串以多行的形式輸出字串
- java將字串逆序遞迴方式輸出Java字串遞迴
- 第四章 字串和格式化輸入/輸出字串
- js如何將字串中的字元逐字輸出JS字串字元
- 用指標編寫程式將輸入的字串倒序輸出指標字串
- Lisp Quote 和Backquote分析Lisp
- python3字串垂直輸出教程Python字串
- 統計字串中數字個數,並將數字字串形式輸出字串
- python怎樣實時輸出時間Python
- 輸出儲存在記憶體中的字串(迴圈輸出每一個的字元和一次性全部輸出)記憶體字串字元
- 同步傳輸字串字串
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- 7-1 jmu-python-輸入輸出-計算字串中的數Python字串
- preg_match (): No ending delimiter '/' foundMIT
- MySql delimiter的作用是什麼MySqlMIT
- ORACLE從字串中過濾出數字~~Oracle字串
- OJ刷題之《輸入三個字串,按由小到大的順序輸出》字串
- python如何隨機選擇幾個字串並輸出Python隨機字串
- php輸出帶變數字串(echo函式的應用)PHP變數字串函式
- Oracle帶輸入輸出引數的儲存過程Oracle儲存過程