oracle 跳脫字元去掉下劃線 _ 的使用方法

season0891發表於2015-03-24

1,看以下結果 

select * from test where login like '%CF_%';

LOGIN
--------------------------------------------------
CF_wwwwwww4
CF_wwwwwww5
CF_wwwwwww6
CF1
CF2
CF3

因為_是跳脫字元 把CF1,CF2,CF3的結果也查出來了 而我們的目的 是不需要轉義符

的,只需要CF_wwwwwww4
CF_wwwwwww5
CF_wwwwwww6

這三條記錄

所以做如下處理就可以了

set   escape   on 

這個在預設情況下就是開啟的

select * from test where login like '%CF\_%' escape   '\';

LOGIN
--------------------------------------------------
CF_wwwwwww4
CF_wwwwwww5
CF_wwwwwww6

以上測試的login是varchar2型別的

如果是nvarchar2型別的,

按上面那寫法寫會報錯,報錯如下資訊:

SQL> select * from tgsj_infodb_flow where flowname like '%c\%%' escape '\';

select * from tgsj_infodb_flow where flowname like '%c\%%' escape '\'

ORA-01425: 換碼符必須是長度為 1 的字串

下面這種寫法才是正確的

SQL> select * from tgsj_infodb_flow where flowname like '%c\%%' escape nchr(92);

        ID FLOWNAME
---------- ----------------------------------------
         3 qabc%ddd

SQL

 

 

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

相關文章