编一个PL/SQL函数或过程功能

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:05:37
--功能:将输入的以逗号的字符串分解,得到每个部分的字符串,然后用dbms_output输出
--输入:字符串
--输入特点: 用逗号分割N个子串;每一个子串长度不固定;字串个数不固定
--例如:1,2,10,123,1,121212

1、存储过程如下:
create or replace procedure 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;