Oracle:Oracle 8i中REGEXP_LIKE函数的替代方案

Ian*_*the 2 regex sql oracle oracle8i

我有一个在where子句中使用REGEXP_LIKE函数的SQL,现在我需要相当于将在Oracle 8i中运行的函数.

正则表达式看起来像这样:

where REGEXP_LIKE(parm, '^[PMF][[:digit:]]+[_].*')
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Gar*_*ers 6

你可以试试

WHERE SUBSTR(parm,1,1) IN ('P','M','F')
AND substr(parm,2,1) between '0' and '9'
AND substr(ltrim(substr(parm,2),'0123456789'),1,1) = '_'
Run Code Online (Sandbox Code Playgroud)

第一个字符是P,M或F.第二个字符是数字第二个字符,从左边剥离所有数字,应以下划线开头

PS.请拍你的8i数据库.8i不仅没有支持,9i和10g也没有支持(或者至少它们处于'退化,请停止使用它们'的支持水平).