刚写的,备份下
declare
str varchar2(100) := 'ids=121|age=1356|password=gaowei';
temp varchar2(200) := '';
s_current varchar2(200) := ''; -- 当前遍历的字符串
start_index int:=1; -- 开始索引
end_index int := 0; -- 截取多少个字符串
begin
-- 分隔str
for i in 1..length(str) loop
end_index := end_index + 1; -- 循环一次就加一次,比如第一次循环那么就截取1个字符串
s_current := substr(str,i,1); -- 拿到当前字符串 'i'
if (s_current = '|') or i = length(str) then
--dbms_output.put_line(start_index || '==' || end_index);
temp := substr(str,start_index,end_index);
start_index := i+1;
end_index := 0;
if i <> length(str) then
dbms_output.put_line(substr(temp,1,length(temp)-1));
-- dbms_output.put_line(temp);
else
dbms_output.put_line(temp);
end if;
end if;
end loop;
end;
分享到:
相关推荐
SQL语句字符串分割 在数据库管理系统中,字符串分割是一个非常常见的问题,特别是在处理逗号分割的字符串数据时。今天,我们将讨论如何在 T-SQL 中获取逗号分割的字符串数据中的元素。 方法一:利用循环逐个取出...
分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回...
SQL Server 逗号分隔的字符串转换成表 SQL Server 逗号分隔的字符串转换成表是指将一个逗号分隔的字符串转换成一个表结构,以便于进行查询、更新或者删除等操作。下面是将逗号分隔的字符串转换成表的步骤: 1. ...
3 @str varchar(1024), –要分割的字符串 4 @split varchar(10) –分隔符号 5 ) 6 returns int 7 as 8 begin 9 declare @location int 10 declare @start int 11 declare @length int 12 13 s
代码如下: CREATE FUNCTION fGetStrBySplit ( @Source VARCHAR(max), @Index INT, @SplitChar VARCHAR(1) ) RETURNS varchar(MAX) AS BEGIN DECLARE @Len INT DECLARE @n INT = 0 DECLARE @ChIndex INT DECLARE @...
下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@...
首先是写一个分割字符串的函数,返回table类型 CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN ty_str_split IS j INT := 0; i INT := 1; len INT := 0; len1 INT...
一,用临时表作为数组 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values ...
as_SourceStr in Varchar2 --需要加密的字符串 ) Return Varchar2; --将Email地址去头去尾,剩下最简单的Email地址,如"TSI Customer Service" 变成cs@csdn.com Function f_GetNakedEmailAddr( as_...
@str varchar(1024), --要分割的字符串 @split varchar(10) --分隔符号 ) returns int as begin declare @location int declare @start int declare @length int set @str=ltrim(rtrim(@str)) set @location...
CHAR 和 VARCHAR 是两种常用的字符串类型。CHAR 列长度固定,长度值范围是 1 到 255。CHAR 值被存储时,它们被用空格填充到特定长度,在检索时需删除尾随空格。VARCHAR 则是可变长度的字符串类型。 字符串类型 ...
前言 按照指定字符进行合并或拆分是经常碰到...mysql> create table tb_group(id int auto_increment primary key ,col1 varchar(20)); Query OK, 0 rows affected (0.01 sec) 插入测试数据 mysql> insert into tb_gr
–>分段更新 –>Author:wufeng4552 –>Date :2009-10-07 08:13:41 –如:更新’a,a,a,a,a’ 第三段a 為 ‘test’ 結果為’a,a,a,test,a’ declare @s varchar(20)–更新的字符串 declare @split varchar(10)–分割符 ...
有时候我们在SQL Server中需要对一些字符串进行分隔,比如a,b,c ,按照‘,’进行分割,可以使用下边这个函数方法,新建方法如下: CREATE FUNCTION dbo.f_splitstr(@SourceSql NVARCHAR(MAX),@StrSeprate VARCHAR...
受理编号 = 年月日 + 序号(转换成5位字符串) = 20060309 + 00001 3. 编辑数据: 1) 增加新的数据,需要录入的项目与2中读入项目的相同。(10分) 2) 修改数据,不论是读入的数据还是...
此外,还要注意在使用字符串类型(如VARCHAR)时,根据实际需求选择适当的字符集和校对规则,以确保正确的数据存储和查询。 使用最小化的数据类型:选择最小化的数据类型来存储数据,以减少存储空间的占用和提高...
@SelectStr Varchar( 500 ), --选择列字符串 @Criteria Varchar( 8000 ), --查询条件 @Sort Varchar( 255 ), --排序字符串 @FristTopNum int, --显示的第一页置顶的数目 @Page bigint OUTPUT , --显示的...
* VARCHAR2:可变长度的字符串,以字符为单位,最大长度 4000 chars。 * CHAR:固定长度字符串,以字符为单位,最大长度 2000 chars。 * DATE:日期类型,以日期和时间组成。 * TIMESTAMP:时间戳类型,以日期和时间...