我試圖從Oracle數據庫使用mybatis檢索BLOB列的內容。有一個表'Demo'包含BLOB類型的列'binfile'。我想選擇BLOB列並將其顯示爲字節數組/原始二進制數據。我正在使用Oracle瘦JDBC驅動程序。使用mybatis從Oracle數據庫中選擇BLOB列
在MyBatis的映射器查詢看起來是這樣的:
<mapper namespace="Oracle" >
...
<select id="SelectBinary" resultType="hashmap">
SELECT binfile from mpdemo.Demo
</select>
</mapper>
如果我這樣做,結果我得到這個樣子的:
BINFILE: "[email protected]"
如果我這樣做:
<select id="SelectBinaryDup" resultType="hashmap">
SELECT utl_raw.cast_to_varchar2(dbms_lob.substr(binfile)) from mpdemo.Demo
</select>
我明顯得到一個錯誤,說原始變量說'PL/SQL:數值或數值錯誤:原始變量長度太lon g',因爲圖像遠遠超過100 kB,因爲SQL中的VARCHAR2變量只能支持2000字節。
有沒有解決方案?
我想寫一個存儲過程,它通過塊讀取BLOB列並將輸出寫入文件。但該文件將保存在數據庫服務器上,我無法檢索該文件。
工程就像一個魅力。謝謝! – codewarrior