create or replace function getVar(varlist in varchar2, varName in varchar2)
return varchar2 as
result_v varchar2(50);
temp_pos number(10);
tempStr_v varchar2(4000);
temp_length_v number(10);
begin
-----查找参数在varlist字符串中的位置,并计算出值的下标索引
temp_pos := instr(chr(01) || varlist, chr(01) || varName || '=') +
length(varName) + 1;
if temp_pos <= length(varName) + 1 then
return ''; ---位置为0时表示没有该参数。返回空
else
---获得等号后面的所有值
tempStr_v := substr(varlist, temp_pos);
---获得等号后面第一个分割符号的位置
temp_pos := instr(tempStr_v, chr(01));
if temp_pos = 0 then
return tempStr_v;
else
return substr(tempStr_v, 1, temp_pos - 1);
end if;
end if;
end;