2016-04-07 36 views
1

我試圖使用查詢,從而獲得從Java中的BLOB列中的十六進制值:如何從blob數據類型獲取完整的十六進制值?

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

如果我用一個查詢:

SELECT LENGTH(thumbnail) FROM thumbnails 

所有縮略圖的字節長度超過6000個字節

它的作品,因爲我給這2000個字節,因爲這是VARCHAR2文件類型的大小第一個查詢:

何我可以修改查詢來獲得所有的縮略圖(所有字符),而不只是2000個字符?或另一種方式從blob值獲得十六進制完整?

回答

1

我解決了這個問題,而無需使用SQL,只能使用Java: 查詢將被執行正常:

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

,並獲得價值作爲Blob在Java中:

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

非常簡單。 ..

相關問題