zoukankan      html  css  js  c++  java
  • Oracle 截取指定长度的字符

    去掉回车,换行符号,截取指定长度的字符

    具体代码示例:

     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'
  • 相关阅读:
    Outlook 邮件助手
    飞花令
    青蛙跳台阶
    如何提问,找到去说谎国的路
    如何计时一个小时十五分钟
    旋转数组的最小元素
    谁养鱼?
    小龙赚了多少?
    下一行是什么?
    5 = ?
  • 原文地址:https://www.cnblogs.com/AnneHan/p/4749690.html
Copyright © 2011-2022 走看看