Ask Hoegh(7)——寫sql時如何輸出單引號?

Hoegh發表於2016-05-06
問:寫sql時如何輸出單引號?
答:在ORACLE中,單引號有兩個作用,一是表示字串的開始和結束符號,二是充當跳脫字元,初學者對於動態構成SQL經常犯錯。單引號的使用是就近配對,即就近原則。而在單引號充當轉義角色時相對不好理解。
我們以's為例,看一下如果正確輸出單引號以及常見的錯誤。
SQL> select ''s' from dual;
ERROR:
ORA-01756: 引號內的字串沒有正確結束

我們看到系統報錯,這是由於在 SQL 中單引號表示字串的開始和結束符號,於是 SQL 直譯器會認為前面兩個單引號是一個空字串,其後的語句顯然是個錯誤的語句,當然會報錯,為了解決字串的單引號問題,就出現了跳脫字元串。
SQL> select '''s' from dual;
''
--
's
我們看到上述語句正確輸出了‘s,比第一個報錯語句多了一個單引號,其中,第一個和第四個單引號表示字串的開始和結束符號,第二個單引號表示跳脫字元,第三個單引號就是我們要輸出的單引號。

另外,為了增加可讀性和可用性,Oracle引入了引用運算子Quote (q) Operator。引用運算子的使用很靈活,支援[ ],{ }, ( ),或者< >。我們看一下使用方法。
SQL>
SQL> select q'['s]' from dual;
Q'
--
's
SQL> select q'<'s>' from dual;
Q'
--
's
SQL>
看到了吧,很簡單,也很靈活。



~~~~~~~ the end~~~~~~~~~
hoegh
2016.05.06

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-2094931/,如需轉載,請註明出處,否則將追究法律責任。

相關文章