Oracle SQL:从两个字符串之间的blob返回字符串(可能使用REGEXP_SUBSTR)

时间:2017-08-27 13:59:02

标签: sql oracle regexp-substr

我正在尝试从blob导出数据以在报告中使用,但是在尝试从中读取时我无法使用REGEXP_SUBSTR。将它转换为varchar是有帮助的,但是我得到的数据点非常难以找到!

以下是我如何获取varchar:

select utl_raw.cast_to_varchar2(dbms_lob.substr(NOTE)) FROM prod17import;

这是输出到varchar的示例:

"Import: T5, ModId: #24, Time: 1/11/2017 7:32:30 AM
Records read: 1723
Added:  1723, Changed: 0
Rejected: 0, Skipped: 0
0.01 Minutes. 234422 recs/min
Map=IMCOWITHHOLDINGLAYOUTTEST9A.MPWM 
Source=W:\(filename).TXT, created: 1/10/2017 11:15:44 PM

Reject name: REJECT
Resource name: !6Imports.Liability.Maps.Life Import Resource
"

我试图只收集值234422(可能在1-1,000,000之间变化)

如何在单词" Minutes之间获得该值。"和" recs / min"?

1 个答案:

答案 0 :(得分:0)

如果字符串格式一致,请使用

select regexp_substr(utl_raw.cast_to_varchar2(dbms_lob.substr(NOTE)) 
                     ,'minutes. ([0-9]+) recs/min',1,1,'i',1)
from prod17import

i作为参数指定不区分大小写的匹配。如果您需要匹配区分大小写,请使用null