把传入的值每隔三位进行截取,最后不足三位的则去掉拼成路径。
比如传入aa3dbba7b781cc744f22a6992c4d800w,最后得到\d80\2c4\699\22a\44f\cc7\781\a7b\dbb\aa3.多谢!

解决方案 »

  1.   

    create function f_csdn_test1
    (
      i_str         varchar2
    )
    return varchar2
    as
      v_len    integer;
      v_str    varchar2(200);
      v_path   varchar2(200);
      v_err    exception;
    begin
      if instr(i_str,'\') > 0 then
         raise v_err;
      end if;
      v_str := trim(i_str);
      v_len := length(v_str);
      while v_len >= 3 loop
          v_path := v_path||'\'||substr(v_str,-3,3);
          v_str := substr(v_str,1,v_len-3);
          v_len := length(v_str);
      end loop;
      
      return v_path;
    exception
      when v_err then
           return 'invalid character!';
      when others then
           return substr(SQLERRM,1,200);
    end;