自定义oracle函数获取字符串中特殊字符

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;

猜你喜欢

转载自xuelianbobo.iteye.com/blog/2215333