2016-04-07 23 views
1

は、私はそうクエリを使用してJavaからBLOB列から16進数の値を取得しようとしています:BLOBデータ型から完全な16進値を取得する方法は?

SELECT LENGTH(thumbnail) FROM thumbnails 

すべてのサムネイルのバイト長は終わった:

SELECT RAWTOHEX(UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(thumbnail, 2000,1))) thumbnail FROM thumbnails 

私は次のクエリを使用している場合6000それはVARCHAR2のファイルタイプのサイズですので、私はそれを2000バイトを与えているので、それが働くバイト

最初のクエリ:

ホーwは2000文字だけでなくサムネイル(すべての文字)を取得するようにクエリを変更できますか?またはBLOB値から16進数を取得する別の方法?

答えて

1

私はJavaを使用して、SQLを使用せずに、この問題を解決:クエリは正常に実行されます :

String query = "SELECT thumbnail FROM Thumbnails" 
ResultSet rs = DBManager.getInstance().execute(query); 

とJavaのBlobとして値を取得:

Blob thumbnail; 
if (rs.next()){ 
    thumbnail = rs.getBlob("thumbnail"); 
    byte[] blobBytes = thumbnail.getBytes(1, (int)thumbnail.length()); 
    return Hex.encodeHexString(blobBytes).toUpperCase(); 
} 

非常にシンプル。 ..

関連する問題