ORACLE正則匹配查詢LIKE查詢多個值檢索數據庫對象
字符串’^198[0-9]$’可以匹配‘1980-1989’,如果希望統計出公司那些員工是80年~89年入職的,就可以使用如下的SQL語句:
select * from emp e where regexp_like(to_char( e.hiredate,"yyyy"),"^198[0-9]$");
正則表達式中常用到的元數據(metacharacter)如下:
^ 匹配字符串的開頭位置。
$ 匹配支付傳的結尾位置。
* 匹配該字符前面的一個字符0次,1次或者多次出現。例如52*oracle 可以匹配 5oracle,52oracle,522oracle,5222oracle等等。
+ 匹配該字符前面的一個字符1次或者多次出現。例如52+oracle 可以匹配 52oracle,522oracle,5222oracle等等
? 匹配該字符前面的一個字符0次或1次或者多次出現。例如52?oracle 只能匹配5oracle,52oracle等等
{n} 匹配一個字符串n次,n為正整數。例如:hel{2}o 所匹配的是hello
{n,m} 匹配一個字符串至少n次,至多m次。其中n和m都是整數。
. 匹配除了null之外的任何單個字符串
(pattern) 這個是用來匹配指定模式的一個子表達式
x|y 匹配x或者y,其中x和y是一個或者多個字符
[abc] 匹配括號中的任意一個字符。例如:[ab]bc可以匹配abc和bbc
[a-z] 匹配指定范圍內的任意字符串。例如[A-G]hi可以匹配Ahi至Ghi
[::]指定一個字符類,可以匹配該類中的任意字符 這里的字符類包括:
[:alphanum:] 可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或者tab鍵
[:digit:]可以匹配數字 0-9
[:gragh:]可以匹配非空字符
[:punct:]可以匹配. , ” ‘等標點符號。
[:upper:]可以匹配字符A-Z
[:lower:]可以匹配字符a-z
關于orace中的正則表達式只能通過oracle特意為正則表達式設計的4個函數來使用。這4個函數分別是:
regexp_like,regexp_instr,regexp_replace,regexp_substr。
查詢oracle中,哪些對象的sql包括了檢索的文本(多個值 使用“|”隔開, 關于user_source對象,移步到無限套娃鏈接 ORACLE常用數據字典)
未去重(查詢出詳細信息):
去重查詢出涉及到的對象名稱:
到此這篇關于ORACLE正則匹配查詢,LIKE查詢多個值檢索數據庫對象。的文章就介紹到這了,更多相關oracle正則匹配查詢內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!