oracle中如何实现blob和base64相互转换

oracle中如何实现blob和base64相互转换,第1张

1 base64 decode

select utl_rawcast_to_varchar2(utl_encodebase64_decode(utl_rawcast_to_raw('dGVzdA=='))) from dual

2 base64 encode

select utl_rawcast_to_varchar2(utl_encodebase64_encode(utl_rawcast_to_raw('test'))) from dual

你已经知道取出来的是jpeg 文件, 直接写到文件不就行了。

FileOutputStream out = new FileOuputStream("c:\tempjpg");

outwrite(bytes);

二进制不能直接转化,blob可能存放的是普通文件,比如,txt,等,也可以存储纯文本(当然这种情况下就没必要用blob了), 需要通过外部程序进行处理,使用blob是不得已的情况下才用的,比如要存储文件,因为有时候会造成很大的不方便,比如使用dblink就不能查询blob字段,这点要注意

这个试下吧

<body>

<%

//获取对象(根据主键)的sql语句

String showImage = " select "+

" from 存放的表 "+

" where id='1' " ;

BufferedInputStream inputImage = null;

try{

//conn为一个Connection对象

Statement st = conncreateStatement();

//获取结果集

ResultSet rs=stexecuteQuery(showImage);

//输出文件名

String filename="";

if(rsnext()) {

Blob blob = (Blob)rsgetBlob("BINARYFILE");

filename=rsgetString("FILENAME");

//读取字节到数据流中

inputImage = new BufferedInputStream(blobgetBinaryStream());

}

BufferedImage image = null;

image=ImageIOread(inputImage);

//获取响应的输出流

ServletOutputStream so = responsegetOutputStream();

//创建到页面

JPEGImageEncoder encoder = JPEGCodeccreateJPEGEncoder(so);

encoderencode(image);

inputImageclose();

}

%>

</body>

<%

catch(Exception e){

}

finally{

closeConn(conn);

}

%>

以上就是关于oracle中如何实现blob和base64相互转换全部的内容,包括:oracle中如何实现blob和base64相互转换、从数据库中取出的BLOB格式图片,写到一个路径下面、ORACLE数据库BLOB如何转化类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10196966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存