2012-11-21 35 views

回答

5

尝试使用如下REGEXP_COUNT功能:

select REGEXP_COUNT('This is varchar', 'i') from dual 

Here您可以找到有关REGEXP_COUNT更多信息。

SQL Fiddle DEMO

+0

警告:我不是一名Oracle开发人员。我确信这个例子非常适用,但我会注意函数名称的REGEXP部分;简单地用''替代''''可能不会做到人们想做的事情。 –

+0

@ ta.speot.is但是这个'选择REGEXP_COUNT('This is varchar。','[。]')from dual' will work :) – Parado

1

试试这个:

LENGTH(varcharString) - LENGTH(REPLACE(varcharString, 'i', '')) 
3

你可以删除所有的i s并检查长度差异。

select length('This is varchar') 
     - NVL(length(replace('This is varchar', 'i')) , 0) 
from dual; 
+1

编辑:需要考虑空值:'选择长度( '三') - 长(更换( '三', 'I'))从双;' –

相关问题