当前位置:  技术问答>java相关

如何用jsp实现oracle数据库中的文件下载??

    来源: 互联网  发布时间:2015-07-16

    本文导语:  我用的是jdk+tomcat+oracle8i, 如何实现数据库中文件的下载? | updateclob  create or replace procedure updateclob( table_name in varchar2, field_id in varchar2,  field_name in varchar2, v_id in number, v_pos in number, v_clob in ...

我用的是jdk+tomcat+oracle8i,
如何实现数据库中文件的下载?


|
updateclob 
create or replace procedure updateclob(
table_name in varchar2,
field_id in varchar2, 
field_name in varchar2,
v_id in number,
v_pos in number,
v_clob in varchar2)
is
lobloc clob;
c_clob varchar2(32767);
amt binary_integer;
pos binary_integer;
query_str varchar2(1000);
begin
pos:=v_pos*32766+1;
amt := length(v_clob);
c_clob:=v_clob;
query_str :='select '||field_name||' from '||table_name||' where '||field_id||'= :id for update ';
--initialize buffer with data to be inserted or updated
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
--from pos position, write 32766 varchar2 into lobloc
dbms_lob.write(lobloc, amt, pos, c_clob);
commit;
exception
when others then
rollback;
end;
我在oracle中是这样用的,你可以参考一下。

|
create or replace procedure updateclob(
table_name in varchar2,
field_id in varchar2, 
field_name in varchar2,
v_id in number,
v_pos in number,
v_clob in varchar2)
is
lobloc clob;
c_clob varchar2(32767);
amt binary_integer;
pos binary_integer;
query_str varchar2(1000);
begin
pos:=v_pos*32766+1;
amt := length(v_clob);
c_clob:=v_clob;
query_str :='select '||field_name||' from '||table_name||' where '||field_id||'= :id for update ';
--initialize buffer with data to be inserted or updated
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
--from pos position, write 32766 varchar2 into lobloc
dbms_lob.write(lobloc, amt, pos, c_clob);
commit;
exception
when others then
rollback;
end;
l /用法说明: 
在插入或修改以前,先把其它字段插入或修改,CLOB字段设置为空empty_clob(), 
然后调用以上的过程插入大于2048到32766个字符。 
如果需要插入大于32767个字符,编一个循环即可解决问题。 
查询CLOB的PL/SQL函数:getclob 
create or replace function getclob(
table_name in varchar2,
field_id in varchar2, 
field_name in varchar2,
v_id in number,
v_pos in number) return varchar2
is
lobloc clob;
buffer varchar2(32767);
amount number := 2000;
offset number := 1;
query_str varchar2(1000);
begin
query_str :='select '||field_name||' from '||table_name||' where '||field_id||'= :id ';
--initialize buffer with data to be found
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
offset:=offset+(v_pos-1)*2000; 
--read 2000 varchar2 from the buffer
dbms_lob.read(lobloc,amount,offset,buffer);
return buffer;
exception
when no_data_found then
return buffer;
end;

|
create or replace procedure updateclob(
table_name in varchar2,
field_id in varchar2, 
field_name in varchar2,
v_id in number,
v_pos in number,
v_clob in varchar2)
is
lobloc clob;
c_clob varchar2(32767);
amt binary_integer;
pos binary_integer;
query_str varchar2(1000);
begin
pos:=v_pos*32766+1;
amt := length(v_clob);
c_clob:=v_clob;
query_str :='select '||field_name||' from '||table_name||' where '||field_id||'= :id for update ';
--initialize buffer with data to be inserted or updated
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
--from pos position, write 32766 varchar2 into lobloc
dbms_lob.write(lobloc, amt, pos, c_clob);
commit;
exception
when others then
rollback;
end;
l /用法说明: 
在插入或修改以前,先把其它字段插入或修改,CLOB字段设置为空empty_clob(), 
然后调用以上的过程插入大于2048到32766个字符。 
如果需要插入大于32767个字符,编一个循环即可解决问题。 
查询CLOB的PL/SQL函数:getclob 
create or replace function getclob(
table_name in varchar2,
field_id in varchar2, 
field_name in varchar2,
v_id in number,
v_pos in number) return varchar2
is
lobloc clob;
buffer varchar2(32767);
amount number := 2000;
offset number := 1;
query_str varchar2(1000);
begin
query_str :='select '||field_name||' from '||table_name||' where '||field_id||'= :id ';
--initialize buffer with data to be found
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
offset:=offset+(v_pos-1)*2000; 
--read 2000 varchar2 from the buffer
dbms_lob.read(lobloc,amount,offset,buffer);
return buffer;
exception
when no_data_found then
return buffer;
end;

|
int pictureId=param.getIntParameter(request,"picture_id",0);
    JdbcConnect myQuery=new JdbcConnect();
    ResultSet rs = myQuery.executeQuery("SELECT * FROM picture where picture_id="+pictureId);
       int length = 0;
       if (rs.next()) 

      {
      BLOB my_blob = (BLOB)rs.getObject("picture");
      length = (int)my_blob.length();
      out.print(length);
      byte [] byte_array  = my_blob.getBytes(1, length);
      response.setContentType("image/jpeg");
    ServletOutputStream sos = response.getOutputStream();

    for(int i=0;i

    
 
 

您可能感兴趣的文章:

  • jsp做下载文件,(如rar文件)为什么下载后,无法打开?
  • 访问JSP文件或者Servlet文件时提示下载的解决方法
  • 请问哪里有用JSP做的文件下载的应用程序。急!急!急!急!
  • 求救,JSP中文件的上传、下载问题
  • 下载的jsp源程序中,扩展名为 .tld的文件是什么?
  • 我是一个初学者,请教各位如何配置jsp的开发环境?tomact 以及apache已经下载,还需要一个ApacheModuleJserv.dll,这个文件到哪里下载?谢
  • jsp文件上传下载的组件smartupload如何用,哪有给50分??
  • 请问jsp中servelet在win2000中的设置方法,需要下载什么类库文件么?
  • jsp 文件下载示例代码
  • JSP response对象实现文件下载的两种方式
  • JSP隐含对象response实现文件下载的两种方法
  • 用JSP下载word文件(不会直接用IE打开)
  • jsp下载文件时文件名到客户端时乱码?就是保存的时候,望高手指点!
  • JSP 点击链接后下载文件(相当于右键另存)功能
  • JSP 多个文件打包下载代码
  • jsp实现文件上传下载的程序示例
  • jsp文件上传与下载实例代码
  • Jsp页面实现文件上传下载类代码第1/2页
  • jsp显示server数据库的内容,如何实现定时更新jsp页面
  • 帮帮新手,jsp面向对象吗?想把c/s结构的引用用jsp改写,交互功能可以实现吗
  • 一个框界网爷包含上下两个网页a1.jsp和a2.jsp,怎么实现a1.jsp自身不变且提交数据到下面的a2.jsp呢?不胜感激,急..
  • 请问在jsp中如何实现相对路径?我在jsp文件中指定相对路径的文件,可是程序找不到!
  • 怎么用Jsp实现在页面实现树型结构?
  • ******"Servlet根据JSP视图的需求生成JavaBeans的实例并输出给JSP环境"如何实现上面这句话的效果??*******
  • 在ASP中可以轻易实现,不知道在JSP中能否实现?
  • 在jsp中如何实现页面的重新指向?
  • 在JSP中如何实现重新定向到其他页面?
  • 在JSP中如何实现MD5加密?
  • 怎么实现jsp中的页面跳转
  • JSP调用EJB如何实现耦合度最底
  • JSP的SESSION能存贮数组吗?我想实现“购物车”功能?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ?100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)(散分)
  • 100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)在线
  • 求jsp树的原代码,一定要是jsp+js+xml 执行效率要高。(从数据库中动态生成的)
  • 在jsp页面加载时自动调用某个特定的servlet,由servlet查询数据库输出WEB页面返回给jsp显示?
  • jsp高手呀`~能介绍一下jsp数据库操作方面的知识吗`~~谢谢`~给高分呀`~
  • jsp与数据库问题
  • 采用Jsp从数据库中取得数据,来生成XML文件,进行存储,应该如何做?
  • 怎样利用JAVABEAN将JSP页面提交的数据保存到数据库,请给代码好吗?谢谢!
  • 有专门讲JSP数据库编程得好书吗?谢谢!
  • 我的jsp连接数据库时,出现以下错误呀!
  • 如何使用jsp显示数据库中的数据?
  • 请前辈介绍一本jsp+数据库的经典好书!!!
  • jsp取数据库中数据的中文问题
  • jsp如何与大型数据库相联?????(我已等了很久了)!
  • JSP连接db2数据库
  • jsp显示server数据库的内容,如何实现定时更新,给一段代码例子吧,谢谢
  • 需要从数据库中动态生成的页面是该在SERVLET输出生成,还是应该在JSP编码实现?
  • 请教:JSP中分页显示数据库内容的优化算法?
  • 请教:怎么用JSP把图片上传到服务器SQL Server数据库?
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • JSP中清空cookie代码参考
  • 现有1.jsp、2.jsp、3.jsp三个文件,我怎么在3.jsp文件中得到1.jsp中输入的值?
  • 请问jsp和serlet之间怎么通讯,jsp和jsp之间呢?
  • 请问<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别
  • response.sendRedirect("index.jsp") 和 <jsp:forward page="index.jsp"/>的区别?
  • 想把一个jsp转到另一个jsp页面,要穿参数,中文的(jsp变量)。谁教教我?!
  • aaa.jsp有如下链接,当单击该链接时将id值传递给bbb.jsp,怎样在bbb.jsp中引用这个id值?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • 谁能告诉我,怎么调试jsp程序呀!我在jsp中调用java,但是Tomcat这家伙只会给我报jsp文件出错。这可怎么办呀?
  • jsp中如何获得当前jsp文件所在的目录,用request.getServletPath()得到的路径含有jsp文件名,有没有办法得到目录(不含文件名)?
  • 初学jsp,一个html调用一个jsp,这个jsp调用一个javaBean,已编译成类,最后如何部署(用j2sdkee)?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3