java读取blob,clob转换为字符串直接上代码:
package st;
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 = uteQuery();
while (()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) Clob("⼤字段1");
BufferedReader in = new CharacterStream());
StringWriter out = new StringWriter();
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
content = String();
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 = ateStatement();
ResultSet rs = st.executeQuery("select ⼤字段2 from 印章基本信息_char_ccbb where yzbm='2'");
while (rs.next()) {
BLOB blob = (BLOB) rs.getBlob("⼤字段2");
byte[] msgContent = Bytes(); // BLOB转换为字节数组
BlobLength = blob.length(); // 获取BLOB长度
if (msgContent == null || BlobLength == 0) // 如果为空,返回空值
{
return "";
} else {
while (i < BlobLength) // 循环处理字符串转换,每次1024;Oracle字符串限制最⼤4k
{
bytes = Bytes(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();
sql 字符串转数组
} finally {
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return newStr;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。