Oracle SQL: Return string from blob between two strings (probably using REGEXP_SUBSTR)
Oracle SQL: Return string from blob between two strings (probably using 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" 之间的值?
如果字符串格式一致,就用
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
。
我正在尝试从 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" 之间的值?
如果字符串格式一致,就用
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
。