2016-02-13 48 views
1

我有一个100字的列表,我需要对55百万行数据进行模式匹配。有没有办法创建一个单词列表并通过REGEXP_LIKE函数传递列表,而不是多次使用| (or)语句,是否可以输入列表?REGEXP_LIKE Oracle函数

Search * 
From table 
Where REGEXP_LIKE(C1, 'wordlword2letc...', 'i'); 

回答

1

REGEXP_LIKE你不可错过的单词列表作为pattern

pattern是正则表达式,通常是文本字面值,不能超过512字节。

你能做什么,存储话你想搜索在不同的表/列,然后使用LIKE条件查询为你只是想搜索的发生字和不期望正则表达式搜索支持。

所以,如果有一个表/列(new_table.col),存储您的输入项搜索,查询可能看起来像(使用UPPER功能,确保不区分大小写,你试图) -

SELECT a.* FROM table a, new_table b WHERE UPPER(a.col1) LIKE UPPER(b.col); 
+0

感谢您的快速回复 – PasitoTunTun