convert oracle 字符串_高手指导:java从oracle 中读取blob字段转换成字符串后生成了各种字符...

求助高手指导:java从oracle 中读取blob字段转换成字符串后生成了各种字符

java从oracle 中读取blob字段转换成字符串后生成了各种字符,源代码如下:

public static String ConvertBLOBtoString(Statement stmt,String jh,String kgrq,String wjrq,String zd){

String newStr = ""; // 返回字符串

long BlobLength; // BLOB字段长度

byte bytes; // BLOB临时存储字节数组

int i = 1;

try{

ResultSet rs = stmt.executeQuery("SELECT "+zd+" FROM SGZJ_SGXS WHERE JH = '"+jh+"' AND KGRQ = TO_DATE('"+kgrq+"','YY-MM-DD') AND WJRQ = TO_DATE('"+wjrq+"','YY-MM-DD')");

if(rs.next()){

Blob blob =(Blob)rs.getBlob(1);

byte msgContent=blob.getBytes(blob.length(),i);

BlobLength=blob.length();

if (msgContent==null||BlobLength==0){

return "";

}else{

while(i

bytes=blob.getBytes(i,1024);

i=i+1024;

newStr=newStr+new String(bytes,"GB2312");

}

}

}rs.close();

System.out.println(newStr);

System.out.println(newStr.length());

}catch(UnsupportedEncodingException e) {

e.printStackTrace();

}catch(SQLException e) {

e.printStackTrace();

}finally{

}

return newStr;

}

执行的结果如下:

{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}} \viewkind4\uc1\pard\lang2052\f0\fs18\'c9\'bd2-31\'be\'ae\'ce\'bb\'d3\'da\'c4\'cf\'c1\'ba\'ce\'f7\'c7\'f8\'c4\'cf\'b2\'bf\'a3\'ac\'ca\'c7\'b6\'f5\'b6\'fb\'b6\'e0\'cb\'b9\'c5\'e8\'b5\'d8\'d2\'c1\'c9\'c2\'d0\'b1\'c6\'c2\'c9\'cf\'b5\'c4\'d2\'bb\'bf\'da\'b5\'d8\'b9\'d8\'be\'ae\'a3\'ac\'ce\'d2\'b6\'d3\'d3\'da2011\'c4\'ea8\'d4\'c23\'c8\'d5\'d6\'c12011\'c4\'ea8\'d4\'c216\'c8\'d5\'b6\'d4\'b8\'c3\'be\'ae\'bd\'f8\'d0\'d0\'c1\'cb\'cd\'a8\'cf\'b4\'be\'ae\'a3\'ac\'b2\'b9\'bf\'d7\'a1\'a2\'d1\'b9\'c1\'d1\'a3\'ac\'b3\'e9\'bc\'b3\'c5\'c5\'d2\'ba\'c7\'f3\'b2\'fa\'b5\'c8\'b9\'a4\'d7\'f7\'a3\'ac\'c8\'a1\'c8\'ab\'c8\'a1\'d7\'bc\'c1\'cb\'b8\'f7\'cf\'ee\'b5\'d8\'d6\'ca\'d7\'ca\'c1\'cf\'a3\'ac\'ca\'a9\'b9\'a4\'b4\'ef\'b5\'bd\'c1\'cb\'c9\'e8\'bc\'c6\'d2\'aa\'c7\'f3\'ba\'cd\'ca\'d4\'d3\'cd\'c4\'bf\'b5\'c4\'a1\'a3\par }

我通过c#软件存进去的是word里的文本,结果出来的是这样的。

我通过oracle下载的blob字段也是这个样子的,难道是存进去的就是这个么?

请高手指教,谢谢。

Java

Oracle

String

blob

------解决方案--------------------

oracle.sql.CLOB clob = (oracle.sql.CLOB) rs1.getClob("xxx");

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);

这样转下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值