第26章 大型对象.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第26章 大型对象

Oracle SQLPL/SQL 第26章 大型对象 本章要点 创建并维护LOB数据类型 区分内部LOB和外部LOB 使用PL/SQL包DBMS_LOB 区分LONG 和LOB数据类型 描述临时LOB的用途 大型对象类型 BFILE、BLOB、CLOB 和 NCLOB 它们允许您存储无结构数据组成的程序块,如文本、图形图像、视频剪辑和声波,其大小最大可达 4 GB 允许随机或按片访问数据 基于 LOB 数据类型的列称为 LOB 列 大型对象类型(续) LOB 由两个不同的组件构成值 是要存储的实际数据 定位器 是指定数据库中对象位置的指示器 大型对象类型(续) LOB 列存储对象的定位器 可以存储 LOB 在数据库内部(内部 LOB 或嵌入) 数据库外(外部 LOB 或脱机),例如在操作系统文件中 LOB 在单一列实例中最多可以存储 4GB 数据 创建具有 LOB 列的表 与使用其他数据类型创建表相似 示例 CREATE TABLE books (book_code CHAR(5), book_image BFILE, book_review CLOB); 更新 LOB 中的数据 通常正被更新的表在后台被自动锁定 执行事务时,释放锁定 对于 LOB 值,必须显式地锁定行 若要释放该锁,可触发 COMMIT 语句 只有对内部存储的 LOB 才需要显式锁定 更新 LOB 中的数据(续) 使用 FOR UPDATE 子句完成显式锁定 示例 SELECT book_review FROM books WHERE book_code = ‘B0189’ FOR UPDATE; UPDATE books SET book_review = ‘Absolutely Thrilling’ WHERE book_code = ‘B0189’; COMMIT; 显示 LOB 中的数据 使用 SELECT 语句只能显示 CLOB 数据类型中的数据 示例 SELECT book_code, book_review FROM books; DBMS_LOB 数据包 提供了用来访问和操纵 LOB 的例程 所有例程都基于 LOB 定位器工作 将一个 LOB 定位器选入局部 PL/SQL LOB 变量,并使用该参数作为 DBMS_LOB 例程访问 LOB 值的输入参数 DBMS_LOB.READ 过程 在指定偏移处开始从 LOB 读取数据 DBMS_LOB.READ(loc, num, offset, buff) 其中 loc 是 LOB 定位器 num 是将要读取的字节/字符数量 offset 是以字节/字符表示的距 LOB 起始位置的偏移量 buff 是读取操作的输出缓冲区 DBMS_LOB.SUBSTR 函数 从指定偏移处开始返回部分 LOB 值 DBMS_LOB.SUBSTR(loc, num, offset) 其中 loc 是 LOB 定位器 num 是将要读取的字节/字符数量 offset 是以字节/字符表示的距 LOB 起始位置的偏移量 DBMS_LOB.INSTR 函数 返回 LOB 中第 n 处发生的匹配模式的位置 DBMS_LOB.INSTR(loc, ptrn, offset, ocrs) 其中 loc 是 LOB 定位器 ptrn 是测试模式 offset 是一字节/字符为单位的模式匹配开始位置的偏移量 ocrs 是发生号(从 1 开始) DBMS_LOB.GETLENGTH 函数 获得 LOB 值的长度 DBMS_LOB.GETLENGTH(loc) 其中 loc 是 LOB 定位器 DBMS_LOB.COMPARE 函数 比较两个 LOB 值 DBMS_LOB.COMPARE(loc1, loc2, num, offset1, offset2) 其中 loc 是要进行比较的第一个 LOB 的定位器 loc2 是要进行比较的第二个 LOB 的定位器 num 是要比较的字节/字符数量 offset1 是以字节/字符为单位的第一个 LOB 的偏移量 offset2 是以字节/字符为单位的第二个 LOB 的偏移量 DBMS_LOB.WRITE 过程 将数据写入到 LOB 的指定偏移位置 DBMS_LOB.WRITE(loc, num, offset, buff) 其中 loc 是 LOB 定位器 num 是要写入的字节/字符数量 offset 是以字节/字符为单位的距 LOB 起始位置进行写操作的偏移量 buff 是写操作的输入缓冲区 DBMS_LOB.APPEND 过程 将源 LOB 的内容追加到目的 LOB DBMS_LOB.

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档