`
Sehoney
  • 浏览: 41099 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

存储过程字符截取的两种方式

阅读更多

     FOR G_I IN 1..G_ITEM_COUNT LOOP       
         G_ITEM_ARR   :=INSTR(G_ITEM_STR,'@',1,1);
         G_ITEM_CODE  :=SUBSTR(G_ITEM_STR,1,G_ITEM_ARR-1);
         
         G_VALUE_ARR  :=INSTR(G_VALUE_STR,'@',1,1);
         G_ITEM_VALUE :=SUBSTR(G_VALUE_STR,1,G_VALUE_ARR-1);
         
         G_AUDIT_ARR  :=INSTR(G_AUDIT_STR,'@',1,1);
         G_AUDIT_VALUE:=SUBSTR(G_AUDIT_STR,1,G_AUDIT_ARR-1);
         
         UPDATE PV_FORM_ITEM 
         SET ITEM_VALUE=G_ITEM_VALUE,AUDIT_VALUE=G_AUDIT_VALUE,LAST_MODIFY_TIME=SYSDATE
         WHERE FORM_ID=G_FORM_ID AND ITEM_CODE=G_ITEM_CODE;
         
         --1 删除相同的   例:'aaa@aaa@bbb@ccc'-->'bbb@ccc'
         G_REP_ITEM_STR := G_ITEM_CODE||'@';
         G_ITEM_STR     := REPLACE(G_ITEM_STR,G_REP_ITEM_STR,'');
         G_REP_VALUE_STR:= G_ITEM_VALUE||'@';
         G_VALUE_STR    := REPLACE(G_VALUE_STR,G_REP_VALUE_STR,'');
         G_REP_AUDIT_STR:= G_AUDIT_VALUE||'@';
         G_AUDIT_STR    := REPLACE(G_AUDIT_STR,G_REP_AUDIT_STR,'');
         --2 去掉第一个值  例:'aaa@aaa@bbb@ccc'-->'aaa@aaa@bbb@'
         G_ITEM_STR     := SUBSTR(G_ITEM_STR,1,instr(G_ITEM_STR,'@',-1,2));
         G_VALUE_STR    := SUBSTR(G_VALUE_STR,1,instr(G_VALUE_STR,'@',-1,2));
         G_AUDIT_STR    := SUBSTR(G_AUDIT_STR,1,instr(G_AUDIT_STR,'@',-1,2));
         --3 去掉第一个值  例:'aaa@aaa@bbb@ccc'-->'aaa@bbb@ccc@'
         G_ITEM_STR   := substr(G_ITEM_STR,instr(G_ITEM_STR,'@',1,1)+1);
         G_VALUE_STR  := substr(G_VALUE_STR,instr(G_VALUE_STR,'@',1,1)+1);
         G_AUDIT_STR  := substr(G_AUDIT_STR,instr(G_AUDIT_STR,'@',1,1)+1);     
END LOOP;
分享到:
评论

相关推荐

    oracle截取表字段中带分号的信息的存储过程

    Oracle 存储过程截取表字段中带分号的信息 Oracle 存储过程是 Oracle ...我们展示了两种不同的方法来实现这个功能,并讨论了存储过程的优点。在实际应用中,使用 Oracle 存储过程可以提高应用程序的性能和可维护性。

    中文字符串截取(支持各种编码格式)底层实现源码

    首先,我们需要了解字符串在计算机中的存储方式。在ASCII编码中,一个字符由一个字节表示,而对于中文字符,通常使用Unicode编码,其中UTF-8是最常见的编码格式。UTF-8编码中,英文字符占用1个字节,而中文字符可能...

    字符串截取(按字节)

    现代计算机系统中,文本通常以Unicode编码存储,这是一种支持全球几乎所有语言字符的编码标准。Unicode编码有多种实现方式,其中UTF-8、UTF-16和UTF-32是最常见的。本示例代码采用的是UTF-16编码,也称为UCS-2...

    字符串 截取

    给定的代码片段展示了两个静态方法`splitStr`,分别用于从字符串的开头截取指定字节数量的字符串以及从指定位置开始截取指定字节数量的字符串。 - **从字符串的开头截取指定字节数量的字符串**: ```java public...

    Java精确截取字符串.pdf

    然而,当处理包含中文字符的字符串时,简单的按字符截取可能会出现问题,因为中文字符通常占用两个字节,而英文字符只占用一个字节。为了实现更精确的截取,可以采用如下的方法: ```java private String str; ...

    字符串高级截取与拼接

    本文将深入探讨一种名为`SearchExtenders`类的方法,该方法提供了高级的字符串截取与拼接功能,旨在帮助开发者更高效、精确地处理字符串数据。 #### 一、`GetStringSearch`方法:高级字符串拼接 `GetStringSearch`...

    Java精确截取字符串.doc

    在Java编程中,有时我们需要对字符串进行精确截取,特别是在处理中文字符时,由于中文字符在内存中通常以双字节形式存储,因此简单的按照字符数截取可能会导致汉字被分割,影响显示效果。这个问题在文档标题“Java...

    vue如何截取字符串

    3. **截取字符串**:Vue提供了两种截取字符串的方法:`substr()`和`substring()`。 - `substr()`方法接受两个参数,第一个是开始截取的位置(从0开始计数),第二个是截取的长度。`substr(2, 5)`将从第三个字符开始...

    sql 存储过程常用函数及游标用法

    在SQL中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的数据库操作,提高数据处理效率,同时提供更好的安全性和可重用性。本文将深入探讨SQL存储过程中的常用函数、游标用法以及日期函数。 一、字符函数 ...

    一个截取字符串的小例子(全部源码)

    标题中的“一个截取字符串的小例子(全部源码)”表明这是一个关于字符串处理的编程示例,提供了完整的源代码供学习者参考。在描述中提到的功能是“可以截取字符中自定义字符之间的一串”,这通常涉及到字符串的分割...

    根据字节数截取字符串

    标题“根据字节数截取字符串”涉及的核心概念是字符串截取,这通常在处理有限的显示空间、传输限制或者存储容量时变得尤为重要。本话题将深入探讨如何在Java语言中根据字节数来截取字符串,并结合给出的`SplitString...

    Oracle 存储过程异常处理.docx

    异常可以分为两种类型:内部异常和用户自定义异常。内部异常是指执行期间返回到 PL/SQL 块的 Oracle 错误或由 PL/SQL 代码的某操作引起的错误,如除数为零或内存溢出的情况。用户自定义异常由开发者显示定义,在 PL/...

    Oracle和SQL Server的一些区别(函数和存储过程)

    本文旨在深入对比这两种数据库系统中的主要功能差异,特别是针对数学函数、字符串操作以及存储过程等方面进行详细分析。 #### 数学函数 1. **绝对值(ABS)** - **SQL Server**: 使用 `SELECT ABS(-1) AS Value`...

    asp 字符串截取函数

    2. **初始化变量**:定义变量`t`用于计算实际长度,`TStr`用于存储截取的字符串。 3. **循环处理**:遍历字符串中的每个字符,如果是汉字,则`t`增加2;否则`t`增加1。当`t`大于`n`时,退出循环。 4. **最终结果**:...

    Oracle截取字符串去掉字段末尾指定长度的字符

    首先,Oracle提供了两种主要的函数来获取字符串的长度:`LENGTHB()` 和 `LENGTH()`。这两个函数的主要区别在于它们计算长度的方式: 1. `LENGTHB(string)` 函数计算字符串`string`的字节长度。这个函数尤其重要,...

    http两种请求方式post和get请求的区别

    - GET 请求:由于数据在 URL 中可见,容易被第三方截取,不适合存储或传输敏感数据。GET 请求在浏览器历史记录、缓存和搜索引擎索引中都可被保留,增加了数据暴露的风险。 - POST 请求:数据在请求体中传输,较...

    MATLAB-数组和字符串的处理方式.docx

    在MATLAB中,字符数组和字符串是两种不同的数据结构,它们都用于处理和操作文本数据。字符数组是一种一维数组,其中每个元素都是一个单独的字符,而字符串是MATLAB中的一个特殊数据类型,用于存储一串连续的字符。...

    SQL根据日期的相差来查询相关数据的储存过程

    存储过程是一种预编译的SQL代码集合,它可以被当作一个单独的对象在数据库中创建并保存。存储过程可以接受输入参数、包含复杂的逻辑流程控制,并能返回输出结果或对数据库进行修改。通过存储过程,可以提高应用程序...

    mysql基础与存储过程相关函数

    本篇文章将深入探讨MySQL的基础以及与存储过程相关的函数,包括字符串类、数学类和日期类函数。 首先,我们来了解一下存储过程。存储过程是预编译的SQL语句集合,它允许在数据库中封装复杂的逻辑,提高性能并降低...

    最准确的php截取字符串长度函数

    3. 初始化两个字符串变量`$str2`和`tstr`,其中`$str2`用于存储最终截取的字符串,而`tstr`用于记录已经处理过的字符长度。 4. 通过遍历匹配到的字符数组`$ar`,根据`$start`和`$length`参数决定是否将当前字符加入...

Global site tag (gtag.js) - Google Analytics