create or replace function RemoveSameStr(v_str in varchar2) return varchar2 is
vlen number;
vsub varchar2(1);
Result varchar2(1000);
vinstr number;
begin
vlen := length(v_str) - 1;
for i in 1 .. vlen loop
vsub := substr(v_str, i, 1);
vinstr :=instr(Result, vsub, 1, 1);
if (vinstr<= 0 or vinstr is null) then
Result := Result || vsub;
end if;
end loop;
return(Result);
end RemoveSameStr;
--授权nguser 调试权限
grant debug any procedure, debug connect session to nguser;
--执行
select * as cd from t_2015_jmxx where kmdm=101 order by length(RemoveSameStr(jmxx)) desc