1. 程式人生 > >java讀取blob,clob轉換為字符串

java讀取blob,clob轉換為字符串

pre class rep exec ps1 數組 oracle final code

直接上代碼:

package com.it.test;

import java.io.BufferedReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import oracle.sql.BLOB;

public class Test { /*** * 讀取oracleCLOB字段內容 * * @param conn * @return */ public static String readCLOB(Connection conn) { String sql = "select 大字段1,大字段2 from 印章基本信息_char_ccbb where yzbm=‘2‘"; String content = ""; try { conn.setAutoCommit(
false); PreparedStatement ps1 = conn.prepareStatement(sql); ResultSet rs1 = ps1.executeQuery(); while (rs1.next()) { oracle.sql.CLOB clob = (oracle.sql.CLOB) rs1.getClob("大字段1"); BufferedReader in = new BufferedReader(clob.getCharacterStream()); StringWriter out
= new StringWriter(); int c; while ((c = in.read()) != -1) { out.write(c); } content = out.toString(); System.out.println(content);// 輸出CLOB內容 } } catch (Exception e) { e.printStackTrace(); } return content; } /*** * 讀取oracle的blob轉換為字符串 * * @param conn * @return */ public static String ConvertBLOBtoString(Connection conn) { String newStr = ""; // 返回字符串 long BlobLength; // BLOB字段長度 byte[] bytes; // BLOB臨時存儲字節數組 int i = 1; // 循環變量 Statement st = null; try { st = conn.createStatement(); ResultSet rs = st.executeQuery("select 大字段2 from 印章基本信息_char_ccbb where yzbm=‘2‘"); while (rs.next()) { BLOB blob = (BLOB) rs.getBlob("大字段2"); byte[] msgContent = blob.getBytes(); // BLOB轉換為字節數組 BlobLength = blob.length(); // 獲取BLOB長度 if (msgContent == null || BlobLength == 0) // 如果為空,返回空值 { return ""; } else { while (i < BlobLength) // 循環處理字符串轉換,每次1024;Oracle字符串限制最大4k { bytes = blob.getBytes(i, 1024); i = i + 1024; newStr = newStr + new String(bytes, "gb2312"); } } } System.out.println(newStr); System.out.println(newStr.length()); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { if (st != null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } } try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return newStr; } }

以上內容參考自:https://blog.csdn.net/u010965170/article/details/78729794

java讀取blob,clob轉換為字符串