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

求教高手:怎样把从oracle中得到的blob数据写到硬盘???

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

    本文导语:  如题! | 在Oracle 8i的SQL*Plus中如何利用LOB字段存取操作系统二进制文件 Oracle 8i数据库系统功能比前面版本更加完善,尤其是出现了BLOB,CLOB,NCLOB, BFILE这些LOB(大型对象)类型来取代功能有限的LONG...

如题!

|
在Oracle 8i的SQL*Plus中如何利用LOB字段存取操作系统二进制文件
Oracle 8i数据库系统功能比前面版本更加完善,尤其是出现了BLOB,CLOB,NCLOB,
BFILE这些LOB(大型对象)类型来取代功能有限的LONG、LONGRAW类型。BLOB字段最
大长度为4G(4,294,967,295)字节,而且不再象LONGRAW那样每个表中只是限制有一
个字段是LONGRAW(最长2G)型的。BLOB,CLOB,NCLOB为内部BLOB(数据通常在数据
库中存放),BFILE为外部LOB(所存储的只是指向外部操作系统文件的指针),用户可
以使用PL/SQL的包DBMS_LOB来处理LOB数据,但是遗憾的是,DBMS_LOB包只能将二进
制操作系统文件写入到BLOB字段中,却无法将BLOB字段中的二进制操作系统文件取回
到操作系统中,估计将来会有所改善。本文将就如何在SQL*Plus将WORD文件存入取出
ORACLE中作详细解释说明,供各位同行参考。

在internal这个用户下给scott用户授权如下:
SQL>grant create any directory to scott;
SQL>grant create any library to scott;
在scott这个用户下执行下述语句:

SQL>create table bfile_tab (bfile_column BFILE);
SQL>create table utl_lob_test (blob_column BLOB);
SQL>create or replace directory utllobdir as 'C:DDSEXTPROC';
SQL>set serveroutput on

然后执行下面语句就将C:DDSEXTPROC目录下的word文件COM.doc存入到utl_lob_test 
表中的blob_column字段中了。

declare
   a_blob  BLOB;
   a_bfile BFILE := BFILENAME('UTLLOBDIR','COM.doc'); --用来指向外部操作系统

文件
begin
   insert into bfile_tab values (a_bfile)
     returning bfile_column into a_bfile;
   insert into utl_lob_test values (empty_blob())
     returning blob_column into a_blob;
   dbms_lob.fileopen(a_bfile);
   dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
   dbms_lob.fileclose(a_bfile);
   commit;
end;
/
SQL>show errors
此时可以使用DBMS_LOB包的getlength这个procedure来检测是否已经将该word文件存入
到blob字段中了。如:
SQL> select dbms_lob.getlength(blob_column) from UTL_LOB_TEST;
结果如下:
DBMS_LOB.GETLENGTH(BLOB_COLUMN)
-------------------------------
                83968
说明该word文件已经存入到blob字段中去了。





    
 
 

您可能感兴趣的文章:

  • 菜鸟低分求教(可用分快没了):硬盘装Linux,启动时出现乱码(看不是是字母还是其他),后有光标闪烁,然后就不动了 iis7站长之家
  • 求教Linux下得到device,memory,net的信息的函数?
  • 求教:在servlet中设定的cookie,为何在jsp中得不到值,但在别的servlet中能得到?
  • 求教关于JAVA认证考试的问题!得到满意答复,一定给分!!!
  • 『硬盘』求获得硬盘格式和信息的办法,和已知CHS如何进行寻址,求教!
  • [求教]请问如何在REDHAT9下挂载NTFS格式的移动硬盘?
  • 求教各位高手简单的问题:hp-unix下,我只有一个硬盘,如何分区呢?
  • 求教硬盘安装Debian,进入安装程序后的详细方法
  • redhat linux9.0 的硬盘安装??高分求教!
  • 菜鸟低分求教(可用分快没了):硬盘装Linux,启动时出现乱码(看不是是字母还是其他),后有光标闪烁,然后就不动了
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 400分求教: 求教一简单问题,现场给分
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 急!!求教linux命令的使用:统计出/bin目录中文件的个数,追加到文件filea的结尾
  • 求教:在UNIX中查找包含指定文字的文件名
  • 小白菜求教linux大鸟
  • JDK1.3.1初级问题求教
  • 初学者有问题求教!
  • 各路高手请进!高分求教,非常着急!
  • 高分求教的问题(关于SendMail设置)
  • 简单问题:从sun网站上当了个jdk1.4b3,bin后缀,求教怎么安装
  • 求教:switch(condition)中的condition 必须为整型吗?
  • Linux远程访问的问题,高分求教:)
  • 求教:在Linux下如何做代理服务器?
  • 紧急求教!究竟Java里面有没有相当于C++的CPOINT的类阿?
  • 求教JAVA中XML解析问题
  • 50分求教,在JSP里如何将String转换成Double
  • 我刚装好,是不是需要配制环境变量?求教。
  • 400分求教JAVA皮肤的问题
  • 400分求教JAVA皮肤的问题


  • 站内导航:


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

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

    浙ICP备11055608号-3