『壹』 oracle資料庫中有一欄位錄入了特殊字元,現在想要篩選出該欄位包含特殊字元的記錄。
where 欄位 like "模糊查詢內容" ,用這個看能不能做,或者用,case做
『貳』 oracle 自定義函數處理『過濾掉空格和其他特殊字元函數』怎麼寫
用regexp_replace這個函數根據正則表達式將特殊字元替換成空串
『叄』 oracle怎麼查出欄位中含有特殊字元的數據表名:table,欄位:col,請直接給出語句,謝謝!
select * from table t where t.col like '%M%' ESCAPE 『M'
使用ESCAPE定義轉義符
在使用LIKE關鍵字進行模糊查詢時,「%」、「_」和「[]」單獨出現時,會被認為是通配符。為了在字元數據類型的列中查詢是否存在百分號(%)、下劃線(_)或者方括弧([])字元,就需要有一種方法告訴DBMS,將LIKE判式中的這些字元看作是實際值,而不是通配符。關鍵字ESCAPE允許確定一個轉義字元,告訴DBMS緊跟在轉義字元之後的字元看作是實際值。如下面的表達式:
LIKE '%M%' ESCAPE 『M』
使用ESCAPE關鍵字定義了轉義字元「M」,告訴DBMS將搜索字元串「%M%」中的第二個百分符(%)作為實際值,而不是通配符。當然,第一個百分符(%)仍然被看作是通配符,因此滿足該查詢條件的字元串為所有以%結尾的字元串。
『肆』 我在去除oracle中的特殊字元,但是要保留以下幾個字元 ( ) | 要怎麼寫語句
str=含有特殊字元的字元串
select translate(str,'()|'||str,'()|') from al;
--這個是只保留「()|」,其他所有字元數字漢字都去專除屬的。如果想加入保留什麼就在 『』 中再加入就可以了,不過加漢字就有點麻煩了。
select translate('您好123*(','()|'||'您好123*(','()|') from al;
TRANSLATE('您好123*(','()|'||'
----------------------------------------------------------------
(