2009年9月16日 星期三

Oracle的跳脫字元

所謂跳脫字元(Escape Character)代表若使用到保留符號卻不希望他被當成保留符號看待。

Oracle做字串的模糊比對中保留符號有'_'以及'%',
而假若欲搜尋的字串是包含這些符號,如'my_blog'。
因為'_'是保留字元,表示一個字元,所以若SQL寫成

select * from table a where a.column like 'my_blog'

則搜尋出來的字串可以是 'myablog' 'mybblog' 'mycblog' ...等等。
這時候我們就需要跳脫字元,希望若碰到保留符號卻不希望他被當成保留符號看待。
應使用關鍵字Escape改寫成

select * from table a where a.column like 'my\_blog' escape '\'

其中關鍵字escape後的跳脫字元可以自訂,即上述SQL等同

select * from table a where a.column like 'my*_blog' escape '*'

沒有留言: