ORACLE LOB大对象处理

主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。

主要介绍字符类型和二进制文件类型LOB数据的存储,单独介绍二进制类型LOB数据的存储。

一.Oracle中的LOB数据类型分类

BLOB: 二进制lob,为二进制数据,最长可达4GB,存贮在数据库中

CLOB: 字符lob,字符数据,最长可以达到4GB,存贮在数据库中。

BFILE: 二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。

NCLOB: 支持对字节字符集合(nultibyte characterset)的一个clob列.

ORACLE中对Lob数据类型的DML操作,都包含在dbms_lob包。

二 介绍一下关于DBMS_LOB包的四组方法:

1. LOB的I/O操作:Append,READ,WRITE,EARSE,OPEN,CLOSE

2. COVERTTOCLOB/COVERTTOBLOB

3. LOADFROMFILE/LOADBLOBFROMFILE/LOADCLOBFROMFILE

4. COMPARE,COPY,INSTR,SUBSTR,GETLENGTH,GETCHUNKSIZE,GET_STORAGE_LIMIT

下面做了一个实例:

/* 从CLOB中读取一行数据,

注: 本函数处理3类换行:ascii码为 1310, 10, 13 */

*/

function F_READ_LINE_FROM_CLOB

(

clobLoc in CLOB, /*传入的CLOB对象*/

nOffset in out number /*起始偏移位置,第一次使用时为“1”,

函数调用后自动移到下一行的起始位置,若

输出偏移量大于CLOB长度,表示已经结束*/

)

return varchar2

/*读取到的数据*/

is

nPosnumber(10);

nPos_13 number(10);

sLine varchar2(8192):=null;/*最大行长*/

nLineSize integer;

nLobLength number;

M_step integer:=1; /*换行的长度默认为1*/

begin

nLobLength:=dbms_lob.getlength(clobLoc);/*判断长度*/

if(nLobLength

return sLine;/*若偏移量大于长度,结束*/

end if;

nPos :=dbms_lob.instr(clobLoc,chr(10),nOffset,1);/*定位换行符位置*/

if(nPos>0) then/*找到换行*/

/*-----处理 1310 和 10 两种情况----*/

/*若chr(10)的前一个符号是chr(13),则跳过该符号*/

if(nLobLength>=nOffset) then

if(DBMS_LOB.SUBSTR(clobLoc,1,nPos-1)=chr(13)) then

nPos :=nPos-1;

m_step:=2;

end if;

end if;

nLineSize:=nPos-nOffset;/*获取本行长度*/

if(nLineSize>0) then/*若长度非零,则读取,放入sLine中*/

dbms_lob.read(clobLoc,nLineSize,nOffset,sLine);

end if;

nOffset:=nPos+m_step;/*定位下次的偏移量位置*/

m_step :=1;/*换行的长度默认为1*/

else/*未找到回车符号,则读取剩下的数据*/

nPos_13 :=dbms_lob.instr(clobLoc,chr(13),nOffset,1);/*定位换行符位置*/

if (nPos_13>0) then

/*-----处理 13 情况----*/

nLineSize:=nPos_13-nOffset;/*获取本行长度*/

if(nLineSize>0) then /*若长度非零,则读取,放入sLine中*/

dbms_lob.read(clobLoc,nLineSize,nOffset,sLine);

end if;

nOffset:=nPos_13+m_step; /*定位下次的偏移量位置*/

else

nLineSize:=nLobLength-nOffset+1;

if(nLineSize>0 and nLineSize<=8192) then

dbms_lob.read(clobLoc,nLineSize,nOffset,sLine);

end if;

nOffset:=nLobLength+1;

end if;

end if;

return (sLine);/*返回数据*/

end;

oracle删除lob对象,ORACLE LOB大对象处理相关推荐

  1. Oracle删除pk+cascade,Oracle删除表

    在本教程中,将学习如何使用Oracle DROP TABLE语句删除现有的表. Oracle DROP TABLE语句简介 要将表移动到回收站或将其从数据库中完全删除,请使用DROP TABLE语句: ...

  2. oracle删除字段速度,oracle删除字段

    oracle 动态字段,,oracle添加字段,oracle删除字段 Oracle 增加和删除字段 在创建表之后,可能会需要根据应用需求的变化向表中增... Oracle 删除表中重复数据 我们可能会 ...

  3. oracle 删除一个值,Oracle删除(delete)

    Oracle删除(delete) Oracle中对表数据的删除是利用delete命令进行的. delete命令结构:delete from 表名 where 条件 命令解析: 1.当delete fr ...

  4. oracle 删除系统用户,Oracle数据库如何创建和删除用户

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1. 创建用户: SQL> create user user01 identified by user01; User created. 但登录提示 ...

  5. oracle 删除用户 ora-00604,ORACLE下用户无法顺利删除问题处理一则-ORA-00604和ORA-00942错误...

    今天遇到一则由于Oracle Spatial相关表不存在而导致个别用户无法删除的问题.比较有代表性,记录在此. 1.问题现象 在SYS用户下删除一个普通用户时抛出ORA-00604和ORA-00942 ...

  6. oracle 删除一个值,Oracle 删除数据的几种方法

    删除表(记录和结构)的语名delete   ----   truncate      ---- drop DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意 ...

  7. oracle 删除空间不足,oracle表空间扩容、创建、删除(解决表空间不足问题)

    前言 整理一下之前使用oracle数据库遇到的表空间不足的问题,顺便水个博客. oracle表空间操作语句 1.改变已存在的数据文件的大小 ALTER TABLESPACE app_data ADD ...

  8. oracle删除字段约束条件,Oracle 数据库中关于对表字段约束的操作(设置、删除、查询)...

    Oracle 数据库中关于对表字段约束的操作(设置.删除.查询) 1. 给表的单个字段加约束 SQL> ALTER TABLE 表名 ADD UNIQUE(字段名); 2. 删除表的单个字段约束 ...

  9. oracle 删除后恢复,Oracle快速恢复误删数据的方法

    日常工作中,我们经常会出现误删Oracle数据的情况,当delete和drop(未加purge)表时,我们可以通过如下进行快速恢复: (1) delete 误删数据时: 我们可以通过构造一致性读的方式 ...

  10. oracle 删除表purge,Oracle Drop表并未直接删除 drop table xx purge

    drop表 执行drop table xx 语句 drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除. 通过查询回收站us ...

最新文章

  1. [日更-2019.5.2、3、4] 关于JVM的概略分析
  2. mac版python3.7怎么使用_【Mac环境】Mac使用python3.7环境
  3. 感知哈希算法(Perceptual hash algorithm)的OpenCV实现
  4. postgreSQL源码分析——索引的建立与使用——Hash索引(2)
  5. 32位系统安装oracle11g,windows系统下 32位 安装Oracle 11g R2(11.2.0.1.0)图文安装教程
  6. 比较高效的表格行背景变色及选定高亮JS
  7. Github发现优秀的开源项目
  8. Excel与对齐的文本文件互转
  9. 分享一个在线301跳转代码生成工具
  10. spring boot英语在线学习系统毕业设计-附源码211714
  11. 计算机上的24点游戏怎么玩,趣味算数二十四点游戏规则怎么玩技巧
  12. time库:Python的时间时钟处理
  13. Uplift modeling for clinical trial data 论文阅读
  14. 异常与调试之SEH、UEH、VEH、VCH以及SEH的区别总结——简单好理解
  15. 地理信息安全在线培训考试系统题库-必对题
  16. 小程序中让后面的View覆盖到上一个view中
  17. Java实现 LeetCode 718 最长重复子数组(动态规划)
  18. python三维图形渲染 地图_Python地图可视化三大秘密武器
  19. 解决:Unknown column ‘字段名‘ in ‘field list‘报错
  20. 计算机网络课程实验4——编程实现路由算法(迪杰斯特拉算法)

热门文章

  1. 用友U8供应链期初数据录入案例教程2
  2. 【小技巧】2345——今日热点弹窗广告(未完成)
  3. AC的集中和本地转发
  4. phpcms一键清理数据后完整找回数据
  5. Linux系统分区管理与swap分区
  6. 算法时间复杂度符号分析(O、o、Ω、ω、Θ)
  7. mysql .ibd_MySQL单表ibd文件恢复方法详解
  8. Python下载库pip pygame
  9. PHP+实验室安全系统 毕业设计-附源码191610
  10. iOS跳转到设置和其他APP的那些事