oracle操作大对象.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle操作大对象

oracle操作大对象 oracle操作大对象:blob,clob,nclob,bfile 13-4 Lob类型 13.4.1 基本介绍 Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等。Oracle 9i realse2支持存储最大为4g的数据,oracle 10g realse1支持最大8到128万亿字节的数据存储,依赖于你的db的block size。 在plsql中可以申明的lob类型的变量如下: 类型 描述 BFILE 二进制文件,存储在数据库外的操作系统文件,只读的。把此文件当二进制处理。 BLOB 二进制大对象。存储在数据库里的大对象,一般是图像声音等文件。 CLOB 字符型大对象。一般存储大数量文本信息。存储单字节,固定宽度的数据。 NCLOB 字节字符大对象。存储单字节大块,多字节固定宽度,多字节变宽度数据。 Oracle将lob分类为两种: 1.存储在数据库里的,参与数据库的事务。BLOB,CLOB,NCCLOB。 2.存储在数据库外的BFILE,不参与数据库的事务,也就是不能rollback或commit等,它依赖于文件系统的数据完整性。 LONG和LONG RAW这两种数据类型也是存储字符的,但是有系列的问题,不建议使用,这里也就不讨论了。 13.4.2 LOB的使用 本部分不讨论lob的所有细节,只讨论lob的基本原理和在plsql中的基本使用,为plsql开发使用lob提供一个基础性指导。 本部分使用的表是: /** table script **/ CREATE TABLE waterfalls ( falls_name VARCHAR2(80),--name falls_photo BLOB,--照片 falls_directions CLOB,--文字 falls_description NCLOB,--文字 falls_web_page BFILE);--指向外部的html页面 / 这个表我们并不需要clob和nclob两个,只取一就可以,这里全部定义只是为了演示使用。 1. 理解LOB的Locator 表中的Lob类型的列中存储的只是存储指向数据库中实际存储lob数据的一个指针。 在plsql中申明了一个lob类型的变量,然后从数据库中查询一个lob类型的值分配给变量,也只是将指针复制给了它,那么这个变量也会指向数据库中实际存放lob数据的地方。如: --understanding lob locators DECLARE photo BLOB; BEGIN SELECT falls_photo INTO photo FROM waterfalls WHERE falls_name=Dryer Hose; 见下图: Lob工作原理图解 从上面的图可以看出,要处理lob数据,必须先获得lob locators。我们可以通过一个select语句获取,当赋值给lob变量的时候,它也获得同样的lob locators。我们在plsql中处理可以使用dbms_lob包,里面内置了很多过程和函数来读取和修改我们的lob数据。下面给出处理lob数据的一般方法。 1. 通过select语句获取一个lob locator。 2. 通过调用dbms_lob.open打开lob。 3. 调用dbms_lob.getchunksize获得最佳读写lob值。 4. 调用dbms_lob.getlength获取lob数据的字节值。 5. 调用dbms_lob.read获取lob数据。 6. 调用dbms_lob.close关闭lob。 2. Empty lob and Null lob Empty的意思是我们已经获取了一个lob locator,但是没有指向任何lob数据。Null是定义了一个变量,但是没有获得lob locator。对lob类型的处理和其他类型不一样。如下面的例子: /* null lob example*/ declare directions clob;--定义了,但是没有分配值,为null begin

文档评论(0)

me54545 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档