欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle 截取字符串(截取固定分隔符中间的字符

程序员文章站 2022-05-28 12:33:53
#### Oracle 截取字符串(截取固定分隔符中间的字符) ######## oracle 取固定分隔符之间的字符--方法一 substr+ instrSELECT substr('12JPX#4806(JP)',instr('12JPX#4806(JP)','#')+1,(instr('12J ......

#### Oracle 截取字符串(截取固定分隔符中间的字符) ####

####  oracle 取固定分隔符之间的字符
--方法一 substr+ instr
SELECT  substr('12JPX#4806(JP)',instr('12JPX#4806(JP)','#')+1,(instr('12JPX#4806(JP)','('))-(instr('12JPX#4806(JP)','#')+1) ) FROM dual
结果 4806

--方法二 正则表达式

SELECT REGEXP_SUBSTR(REGEXP_SUBSTR('12JPX#4806(JP)','[^#]+',1,2,'i'),'[^(]+',1,1,'i')  FROM DUAL;
结果   4806
注意!!!! : 如果首个符号为第一个时,  

#### 取字段包含A-Z的正则表达式用法

select *  from gaa_file t  where regexp_like(t.gaa02,'^[A-Z]');


#### 4GL 截取字符串(截取固定分隔符中间的字符) ####
####利用while循环取出一个包含多个'x'的字符串,最后一个'x'后面的字符 ####

搞个while循环取出来
  WHILE TRUE
     IF guige.getIndexOf("x",1) THEN
        LET guige = guige.substring(guige.getIndexOf("x",1)+1, guige.getLength())
     ELSE
        EXIT WHILE
     END IF
  END WHILE


#### 取得固定分隔符前面的字符串... ####

方法一:
 LET len_str = length(str1)
        LET index1 = 0
        LET str_ret=str1
        WHILE index1<len_str
            LET index1=index1+1
            IF str1[index1,index1]=p_flag THEN
                LET str_ret=str1[1,index-1]
                EXIT WHILE
            END IF
        END WHILE

方法二:
FOR i=1 TO length(xxxx) STEP +1
   LET temp = xxx[1,i]
   IF temp LIKE '*/' THEN
       RETURN temp[1,i-1]
   END IF
END FOR

#### 4gl截取字符串进行判断  ####
   FOR li_i = pi_start TO pi_end
       LET ls_chk_chr = ps_source.getCharAt(li_i)
       IF ls_chk_chr NOT MATCHES "[0-9a-zA-Z]" THEN
          LET li_result = FALSE
          EXIT FOR
       END IF
   END FOR

####以固定符号取出字符串中的内容(这里以'&'作为范例)####

DEFINE  l_tok       base.stringTokenizer      #080121
DEFINE  l_str       LIKE type_file.chr1000
DEFINE  l_str1      LIKE type_file.chr1000
    LET l_str ="abasf&asdfa&asfa"
    IF NOT cl_null(l_str) THEN
       LET l_tok = base.StringTokenizer.create(l_str,"&")
       WHILE l_tok.hasMoreTokens()
          LET l_str1 = l_tok.nextToken()
       END WHILE
    END IF

####以固定符号取出字符串中的内容(这里以'&'作为范例)####