2017-08-27 8 views
1

BLOBからレポートに使用するデータをエクスポートしようとしていますが、読み込み中にREGEXP_SUBSTRを使用するときに問題があります。 varcharに変換すると助けになりますが、私が必要とするデータポイントを得ることは、私が探しているように非常に難しいです!これは、varchar型への出力のサンプルですOracle SQL:2つの文字列間のBLOBからの文字列を返します(おそらくREGEXP_SUBSTRを使用)

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を使用してください。

関連する問題