Oracle截取字符串(截取固定分隔符中间的字符
#### 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
IndexOf("x",1) THEN
LET guige = guige.IndexOf("x",1)+1, Length())
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 = CharAt(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 = ate(l_str,"&")
WHILE l_tok.hasMoreTokens()
LET l_str1 = Token()
END WHILE
END IF
####以固定符号取出字符串中的内容(这⾥以'&'作为范例)####
>字符串截取某个字符前面的内容

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。