`
surfingForRest
  • 浏览: 145622 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

ORACLE LOB大对象处理

阅读更多
Declare
  varC  clob;
  vRStr varchar2(1000);
  ln    number(4);
  Strt  number(4);
  sStrt number(4);
  differ1 number(4);
  differ2 number(4);
  vWStr varchar2(1000);
Begin
  select DESCRLONG
    into varC
    from PSMSGCATDEFN
   where MESSAGE_SET_NBR = 3000
     AND MESSAGE_NBR = '473'
     FOR UPDATE;
  ln    := DBMS_LOB.GetLength(varC);
  Strt  := 1;
  vWStr := REPLACE(REPLACE(varC, '受抚养人/受益人', '家庭成员'),
                   '受抚养人',
                   '家庭成员');
  sStrt := DBMS_LOB.GetLength(vWStr);
  
  DBMS_output.put_line('未改之前varC: ' || varC);
  DBMS_output.put_line('replace 的vWStr : ' || vWStr);
  /*===================================
  当源数据的长度与目标数据的长度相等,
  则直接 Write过去(覆盖掉目标数据)。
  ===================================*/
  if ln=sStrt then
  DBMS_output.put_line('ln=sStrt ');
  DBMS_LOB.Write(varC, ln,1,vWStr);
  end if;
  /*====================================
  当源数据的长度”小于“目标数据的长度,
  则先 Write源数据过去(先覆盖掉目标数
  据的一部分(覆盖长度=源数据长度)),
  然后,将目标数据长于源数据的部分 
  Erase(删除)掉。
  =====================================*/
  if ln>sStrt then
   DBMS_output.put_line('ln>sStrt  ');
  differ1:=ln-sStrt;
  differ2:=sStrt+1;
  DBMS_LOB.Write(varC, sStrt,1,vWStr);
  DBMS_LOB.Erase(varC, differ1, differ2);
  end if;
  /*=====================================
  当源数据的长度“大于”目标数据的长度,
  则取源数据一部分数据,先 Write过去(取
  的规则:从源数据起始位置开始,到与目标
  数据长度相等的位置为止),然后,将源数
  据余下的部分 Append到目标数据后面。
  ======================================*/
 if ln<sStrt then
  DBMS_output.put_line('ln<sStrt  ');
 differ1:=sStrt-ln;
 differ2:=ln+1;
 DBMS_LOB.Write(varC, ln,1,DBMS_LOB.SubStr(vWStr,ln,1));
 DBMS_LOB.Append(varC, DBMS_LOB.SubStr(vWStr,differ1,differ2));
 end if;
  DBMS_output.put_line('修改后的varC    : ' || vWStr);
  UPDATE PSMSGCATDEFN SET MESSAGE_TEXT=REPLACE(MESSAGE_TEXT,'受抚养人','家庭成员') where MESSAGE_SET_NBR = 3000 AND MESSAGE_NBR='473';
  commit;
End;
分享到:
评论

相关推荐

    ORACLELOB大对象处理[定义].pdf

    Oracle中的LOB(Large Object)是用于存储大量非结构化数据的数据类型...总之,Oracle的LOB数据类型为存储和管理大型非结构化数据提供了强大支持,通过合理的表设计和使用`DBMS_LOB`包,可以高效地处理这些大数据对象。

    oracle dbms_lob

    通过阅读如“Oracle中的包――DBMS_LOB(一).pdf”、“ORACLE LOB大对象处理.pdf”和“DBMS_LOB包的使用.pdf”等资料,可以深入理解这些概念,并通过实践来熟练掌握。同时,“dbms_lob包学习笔记之二:append和...

    Oracle Lob Performance Guidelines

    ASSM 可以有效地处理 LOB 对象的碎片问题,从而提高性能。 3. **索引组织表**:对于频繁查询的 LOB 字段,考虑使用索引组织表(IOT)。这样可以在查询时避免额外的表扫描,提高查询效率。 4. **并行操作**:利用...

    使用JDBC数据接口存取Oracle LOB(大对象).pdf

    《使用JDBC数据接口存取Oracle LOB(大对象)》这篇文章主要探讨了如何通过Java...对于Java开发者和Oracle数据库管理员来说,这篇文章提供了宝贵的理论知识和实践经验,有助于他们在实际项目中更好地处理大对象数据。

    Oracle的大对象处理(代码加注释)

    通过以上介绍,我们可以了解到Oracle的大对象处理涉及数据存储、读取、更新、删除以及性能优化等多个方面。在实际开发中,根据具体需求选择合适的LOB类型和管理策略,能够有效地处理和存储大量非结构化数据。

    Spring+Hibernate处理Oracle lob字段(一)

    在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...

    Oracle数据库大对象数据存取的两种实现方法及时间性能比较.pdf

    而JAVA编程语言的方法则提供了更高的灵活性和效率,特别是在处理大数据量时更为突出。因此,数据库管理员和开发者在面临大对象数据存取的抉择时,应根据实际需求和资源状况,选择最合适的实现路径。此外,本研究也...

    Oracle大型数据对象LOB几种情况的示范类

    本文通过Java代码示例解释了如何在Oracle数据库中操作LOB对象,尤其是CLOB类型。 1. **建立数据库连接** 在Java程序中,我们首先需要导入必要的JDBC库,并设置Oracle驱动程序、数据库连接URL、用户名和密码。`...

    基于VC的Oracle LOB数据库访问技术.pdf

    使用OCI,开发者可以直接操纵LOB对象,包括读取、写入和更新数据。优点是性能高效,可以直接控制数据库操作,但缺点是学习曲线陡峭,需要深入理解Oracle的内部机制。 2. Pro*C/C++:这是一种预编译器,将SQL和PL/...

    基于.NET的Oracle LOB数据库访问技术.pdf

    Oracle数据库在存储和管理大对象非结构化数据方面扮演了重要角色,特别是其LOB(Large Object)数据类型,包括BLOB(Binary Large Object)和CLOB(Character Large Object)。BLOB类型用于存储二进制数据,如图片、...

    Oracle中对LOB对象的操作.pdf

    处理LOB数据时,Oracle提供了一个强大的DBMS_LOB包,这个包简化了对内部LOB对象(BLOB和CLOB)的操作,包括读取和写入。然而,对于外部LOB对象BFILE,只能进行读操作,而写操作应该通过PL/SQL程序段来完成。 以下是...

    本文档主要介绍如何对LOB字段进行处理

    为了解决这一问题,Oracle数据库引入了LOB(Large Objects,大对象)数据类型来存储大量二进制和文本数据。本文旨在详细介绍如何在Oracle数据库中使用和维护LOB数据类型。 #### LOB概述 在Oracle数据库中,LOB是一...

    用PHP操纵Oracle的LOB类型的数据

    - 使用`OCINewDescriptor()`生成一个本地LOB对象的描述符,并指定类型为`OCI_D_LOB`。 - 使用`OCIBindByName()`将生成的LOB对象绑定到SQL语句中的LOB字段。 - 执行SQL语句。 - 给LOB对象赋值,例如通过`savefile...

    利用Java程序实现Oracle数据库中大对象的存取.pdf

    Oracle从8i中使用了LOB(大对象)这种特殊的数据类型,实现了对这些数据的存储。 LOB是以对象的形式出现的,不同于以往的普通数据结构,因此具有对象的属性和方法,可以使用Java这种基于对象的语言进行操作。一个...

    C Builder程序对Oracle数据库巨型对象类型的处理.pdf

    标题中的"C++Builder程序对Oracle数据库巨型对象类型的处理"指的是使用C++Builder这一集成开发环境(IDE)来操作Oracle数据库中的LOB(Large Object)类型数据,主要包括CLOB(Character Large Object)和BLOB...

    oracle数据库对象导出脚本

    ### Oracle数据库对象导出脚本知识点解析 #### 标题:Oracle数据库对象导出脚本 此标题指明了本文档的主题是关于如何通过编写脚本来导出Oracle数据库中的对象定义。在Oracle数据库中,对象是指数据库表、视图、...

    ado.net读写Oracle大对象

    Oracle的`OracleLob`类提供了诸如`CreateTemporary`、`CopyTo`、`Trim`等方法,以支持这些高级功能。 总之,通过ADO.NET和OracleClient,开发者可以轻松地在C#应用程序中处理Oracle数据库中的Blob和Clob大对象,...

Global site tag (gtag.js) - Google Analytics