`

oracle替换clob类型中的一段数据

阅读更多

CREATE OR REPLACE FUNCTION dfn_clobReplace
( p_clob          IN CLOB,
  p_what          IN VARCHAR2,
  p_with          IN VARCHAR2 ) RETURN CLOB IS

  c_whatLen      CONSTANT PLS_INTEGER := LENGTH(p_what);
  c_withLen      CONSTANT PLS_INTEGER := LENGTH(p_with);

  l_return        CLOB;
  l_segment      CLOB;
  l_pos          PLS_INTEGER := 1-c_withLen;
  l_offset        PLS_INTEGER := 1;

BEGIN

  IF p_what IS NOT NULL THEN
    WHILE l_offset < DBMS_LOB.GETLENGTH(p_clob) LOOP
      l_segment := DBMS_LOB.SUBSTR(p_clob,32767,l_offset);
      LOOP
        l_pos := DBMS_LOB.INSTR(l_segment,p_what,l_pos+c_withLen);
        EXIT WHEN (NVL(l_pos,0) = 0) OR (l_pos = 32767-c_withLen);
        l_segment := TO_CLOB( DBMS_LOB.SUBSTR(l_segment,l_pos-1)
                            ||p_with
                            ||DBMS_LOB.SUBSTR(l_segment,32767-c_whatLen-l_pos-c_whatLen+1,l_pos+c_whatLen));
      END LOOP;
      l_return := l_return||l_segment;
      l_offset := l_offset + 32767 - c_whatLen;
    END LOOP;
  END IF;

  RETURN(l_return);

END;
/

分享到:
评论

相关推荐

    ORACLE中CLOB字段转String类型

    在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何其他大型文本内容。然而,在处理CLOB...

    jsp结合html编辑器FCKeditor对Oracle CLOB大字段操作范例

    在这个示例中,我们将探讨如何使用JSP(JavaServer Pages)与HTML编辑器FCKeditor相结合,来处理Oracle数据库中的CLOB(Character Large Object)类型的大字段。CLOB类型用于存储大量的文本数据,如文章、报告或HTML...

    oracle中导出表文档

    这段代码将所有信息存储在一个CLOB变量中,你可以进一步处理这个CLOB,例如写入文件或导入Word。 Oracle SQL Developer也提供了一种可视化的方式导出表文档。在工具栏中选择“报表”&gt;“对象描述”,然后选择你需要...

    Mysql迁移到Oracle一些需要注意的事项和方案

    - 数据类型兼容性检查,如数字类型、时间戳类型等。 - 触发器、存储过程、索引的转换和重建。 - 权限和用户管理的调整。 - 数据一致性验证,确保迁移后数据无误。 以上是Mysql迁移到Oracle过程中需要关注的主要...

    ORACLE 常用的SQL语法和数据对象

    - 如果需要插入的字符串长度超过4000个单字节,则应考虑使用CLOB类型,并借助Oracle内置的`DBMS_LOB`程序包进行处理。 6. **自增序列的使用:** - 首先创建一个序列: ```sql CREATE SEQUENCE 序列名 ...

    PLSQL_ORACLE9i编程讲义.doc

    PL/SQL支持多种内置数据类型,如NUMBER、VARCHAR2、DATE等,以及用户自定义的数据类型。 #### 2.4.2 复合类型 包括纪录类型(RECORD)和集合类型(如VARRAY和TABLE),用于存储多个值或复杂数据结构。 #### 2.4.3...

    Oracle选择题目[借鉴].pdf

    13. **字符数据类型**:VARCHAR2、LONG和CLOB都是Oracle的字符数据类型,而LONG RAW是二进制大对象类型。 14. **限制分组函数返回值**:GROUP BY子句后的HAVING子句用于限定分组函数的返回值。 15. **序列对象**:...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob 1~4GB 以二进制信息保存数据 三、 DDL语言 1. Create table命令 用于创建表。在创建表时,经常会创建该表的主键、外键、唯一...

    最全的oracle常用命令大全.txt

    MODIFY (列名 数据类型) 例:将test表中的Count列宽度加长为10个字符 sql&gt;alter atble test modify (County char(10)); b、将一张表删除语句的格式如下: DORP TABLE 表名; 例:表删除将同时删除表的数据和...

    Oracle8i_9i数据库基础

    §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL...

    log4net写入oracle的配置

    这段XML配置中,`connectionString`应替换为你的Oracle数据库连接字符串,`LOG_TABLE`应替换为你的实际日志表名。 2. **初始化log4net** 在应用程序启动时,你需要初始化`log4net`。在Global.asax.cs文件的`...

    数据从MySQL迁移到Oracle 需要注意什么

    MySQL中的`AUTO_INCREMENT`字段在Oracle中没有直接对应的数据类型。在Oracle中,需要创建一个序列(SEQUENCE)来模拟这个功能。例如,可以创建一个名为`TABLE_NAME_SEQ`的序列,并在插入记录时使用`.NEXTVAL`获取下...

    PL/SQL编程

    触发器是PL/SQL中的另一个高级特性,用于在特定的数据库事件发生时自动执行一段代码。 - **DML触发器**: 在数据操纵语言(DML)事件(如INSERT、UPDATE、DELETE)发生时触发。 - **替代触发器**: 用于替换某些DML...

    Oracle事例

    20.oracle8中扩充了group by rollup和cube的操作。有时候省了你好多功夫的。 下面的语句可以进行总计 select region_code,count(*) from aicbs.acc_woff_notify group by rollup(region_code); &lt;2&gt; 对第1个字段...

    PLSQL 语句优化

    - **避免隐式数据类型转换**:确保 WHERE 子句中的条件与索引的数据类型相匹配,以利用索引。 - **索引的选择性**:索引应具有良好的选择性,即索引值分布均匀。 3. **避免全表扫描**:通过合理设计查询逻辑和...

Global site tag (gtag.js) - Google Analytics