FUNCTION SBUSTR(STR_INPUT IN VARCHAR2, LENGTH_INPUT IN NUMBER)
RETURN NUMBER IS
I NUMBER;
SUB_STR VARCHAR2(2000);
SUB_LENGTH NUMBER := 0;
STR_COUNT NUMBER := 0;
TEMP NUMBER := 0;
RETURN_STR VARCHAR(2000) := '';
BEGIN
SELECT LENGTH(STR_INPUT) INTO SUB_LENGTH FROM DUAL;
FOR I IN 1 .. SUB_LENGTH LOOP
SELECT SUBSTR(STR_INPUT, I, 1) INTO SUB_STR FROM DUAL;
SELECT LENGTHB(SUB_STR) INTO SUB_LENGTH FROM DUAL;
IF (SUB_LENGTH = 1) THEN
TEMP := 1;
ELSE
TEMP := 2;
END IF;
IF (STR_COUNT + TEMP <= LENGTH_INPUT) THEN
IF (SUB_LENGTH = 1) THEN
STR_COUNT := STR_COUNT + 1;
ELSE
STR_COUNT := STR_COUNT + 2;
END IF;
RETURN_STR := RETURN_STR || SUB_STR;
ELSE
EXIT;
END IF;
END LOOP;
RETURN RETURN_STR;
END SBUSTR;
分享到:
相关推荐
`SUBSTR`函数用于从指定位置开始截取字符串的一部分,其基本语法格式为: ```sql SUBSTR(source_string, start_position, length) ``` - **source_string**:源字符串。 - **start_position**:起始位置。 - **...
Oracle数据库截取字符串 Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分...
2. `LENGTH(string)` 函数则计算字符串`string`的字符长度,以字符为单位。这个函数不考虑字符编码,而是简单地计算字符串中的字符数。在单字节字符集中(如ASCII),字符长度和字节长度相同;但在多字节字符集中,...
### Oracle接收长度大于4000的字符串 在Oracle数据库中,默认情况下,`VARCHAR2`类型字段的最大长度为4000个字符。当需要处理更长的字符串时(例如,超过4000个字符),可以采用多种方法来解决这一问题。本文将详细...
在Oracle数据库中,经常需要对存储的数据进行处理,比如根据特定字符进行截取。这篇博客“一个oracle根据特定字符截取数据”分享了一个实用的方法,适用于那些需要从字符串字段中提取部分信息的情况。通过SQL查询,...
它接受三个参数:原始字符串、起始位置和截取长度。需要注意的是,Oracle的索引是从1开始的。例如,`SELECT SUBSTR('thinking in java',1,5) FROM dual`会返回"think"。 INSTR函数查找子字符串在另一个字符串中的...
- **SUBSTR**: 截取字符串的一部分,从指定位置开始,截取指定数量的字符。例如,`SELECT SUBSTR('thinking in java', 1, 5) FROM dual`。 - **INSTR**: 查找子字符串在主字符串中的位置。例如,`SELECT INSTR('...
本文将详细介绍两种在Oracle中常用的字符串截取方法:`substr`函数和`instr`函数。 首先,我们来看`substr`函数。`substr`函数用于从给定的字符串中截取一部分。其基本语法如下: ```sql SUBSTR(string, start, ...
结合`instr()`,可以逐个截取字符串的不同部分。 3. **REGEXP_SUBSTR() 函数** 对于更复杂的字符串分割需求,`regexp_substr()` 函数基于正则表达式规则进行分割。它返回匹配正则表达式的子串。例如,`regexp_...
当长度为负数时,表示从指定的起始位置开始向左截取字符。在这个例子中,从第5个字符开始向左截取2个字符,但由于只有一位有效字符,所以返回结果为`'E'`。 #### 注意事项 - 在不同的SQL方言中(如MySQL、Oracle、...
Oracle Sql 提供了 SUBSTR() 函数,用于截取字符串的一部分。 示例:SELECT SUBSTR('abcd', 2, 2) FROM dual; -- 返回 bc 3. 字符串连接函数 Oracle Sql 提供了串联符(||)来连接两个字符串。 示例:SELECT 'ab...
例如,字符函数包括`LOWER`、`UPPER`、`INITCAP`、`CONCAT`、`SUBSTR`、`LENGTH`、`INSTR`、`LPAD`、`RPAD`和`TRIM`,用于对字符串进行大小写转换、连接、截取、查找和填充等操作。 1. `LOWER`和`UPPER`函数用于将...
### 截取字符串 首先,我们需要从原始字符串中截取出感兴趣的数字部分。在SQL中,不同的数据库系统提供了不同的函数来实现这一功能。例如,在Microsoft SQL Server中,可以使用`SUBSTRING`函数;而在MySQL中,则应...
3. 如果`nEnd`不为0,使用`SUBSTR(v_str, nFrom, nEnd - nFrom)`截取子字符串,并添加到结果集合中。 4. 更新`nFrom`为`nEnd + 1`,继续查找下一个子字符串,直到`nEnd`为0,表示没有更多的子字符串。 在上述基础之...
- `substr()` 函数:根据指定的起始位置和长度截取字符串,非常灵活,是处理字符串时常用的工具。 2. 数学函数:Oracle提供了多种数学运算函数,如`abs()`(绝对值)、`mod()`(求余数)、`round()`(四舍五入)等...
该函数用于根据 POSIX 正则表达式截取字符串中的子串。例如,`substring('Thomas' from '...$')`将返回`'mas'`。 11. 字符串 SQL 正则表达式匹配函数:`substring(string from pattern for escape)` 该函数用于...
Oracle字符函数是数据库操作中非常基础且重要的工具,它们用于处理和操纵文本数据。这篇博客主要介绍了12个常用的字符函数,以及如何结合使用这些函数来解决实际问题。以下是这些函数的详细介绍: 1. **lower()**: ...