日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle Q-quote delimiter Quote(q) 字符串原样输出

發布時間:2024/4/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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> select 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群,學習最實用的數據庫技術。

???

總結

以上是生活随笔為你收集整理的Oracle Q-quote delimiter Quote(q) 字符串原样输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。