去掉回车,换行符号,截取指定长度的字符
具体代码示例:
1 --Function 2 --去掉前后空格,截取字符,字符长度为P_Length 3 create or replace function get_StringLen 4 ( 5 P_Name IN VARCHAR2, 6 P_Length IN int 7 ) return varchar2 is 8 v_Temp varchar2(1000):=''; 9 v_Name varchar2(1000):=''; 10 v_Len int:=0; 11 i int:=1; 12 k int:=0; 13 begin 14 --去掉回车,换行符号 15 select trim(translate(P_Name,chr(13)||chr(10),',')) into v_Name from dual; 16 17 --取字串的长度 18 select length(v_Name) into v_Len from dual; 19 20 --循环来取 21 for i in reverse 1..v_Len 22 loop 23 if (lengthb(substr(v_Name,-i,1))<>length(substr(v_Name,-i,1))) then 24 k:=k+2; 25 else 26 k:=k+1; 27 end if; 28 if k<=P_Length then 29 v_Temp:=v_Temp || substr(v_Name,-i,1); 30 end if; 31 if k>=P_Length then 32 CONTINUE; 33 end if; 34 end loop; 35 36 return(v_Temp); 37 38 end get_StringLen; 39 40 --Test 41 select get_StringLen('asdf',5) from dual;--返回结果:'asdf' 42 select get_StringLen('asd中国',5) from dual;--返回结果:'asd中' 43 select get_StringLen('asdfasdf',5) from dual;--返回结果:'asdfa'
如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读,请关注我的后续博客