2017-08-27 61 views
1

我試圖將數據從一個blob導出報表中使用一滴之間返回的字符串,但我想從中讀取數據時使用REGEXP_SUBSTR遇到麻煩。將其轉換爲varchar幫助,但得到的數據點我需要的是挺難的,因爲我發現!的Oracle SQL:從兩個字符串(可能使用REGEXP_SUBSTR)

這裏是我如何讓爲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之間可能有所不同)

「紀要」。和「recs/min」?

+0

爲什麼BLOB和CLOB不? BLOB是用於二進制文件,而不是用於文本。你不應該期望它很容易從BLOB中提取文本。 – mathguy

回答

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

相關問題