编一个PL/SQL函数或过程功能
发布网友
发布时间:2022-04-10 01:25
我来回答
共1个回答
热心网友
时间:2022-04-10 02:55
1、存储过程如下:
create or replace procere pro_parse_string(
a_SourceString IN VARCHAR2, --源字符串
a_Delimiter IN VARCHAR2 --拆分的分隔符
) is
iBegin INTEGER;
sValue VARCHAR2(200);
sSplitString VARCHAR2(1000);
BEGIN
--检查参数
IF a_SourceString IS NULL OR a_Delimiter IS NULL THEN
RETURN;
END IF;
IF a_SourceString = '' THEN
RETURN;
END IF;
IF instr(a_SourceString,a_Delimiter) = 0 THEN
dbms_output.put_line(a_SourceString);
RETURN;
END IF;
sSplitString := a_SourceString;
LOOP
iBegin := INSTR(sSplitString,a_Delimiter);
EXIT WHEN iBegin < 1;
sValue := Substr(sSplitString,1,iBegin - 1);
sSplitString := SubStr(sSplitString,iBegin + 1);
dbms_output.put_line(sValue);
IF sSplitString IS NULL THEN
EXIT;
END IF;
END LOOP;
--Set last entry
sSplitString := SubStr(sSplitString, iBegin);
--Update array and counter if necessary
IF Length(sSplitString) > 0 THEN
dbms_output.put_line(sSplitString);
END IF;
end pro_parse_string;
2、输入变量测试:
exec pro_parse_string('1,2,10,123,1,121212',',');