以下字符串中包含一些变量:
sText := '%CUSTOMER_LASTNAME%%CUSTOMER_PRENAME% - LANG: %LANGUAGE%'
我创建了一个自定义SPLIT_STRING函数,并希望获取String中的每个变量:
sStr := SPLIT_STRING(sText,'%');
我现在得到的是:
我需要什么:
我可以使用RegExp执行拆分字符串或如何执行此操作吗?
TIA frgtv10
答案 0 :(得分:2)
我可以使用RegExp
执行拆分字符串
是的,你可以。这是一个如何完成它的例子。
SQL> with t1(col) as(
2 select '%CUSTOMER_LASTNAME%%CUSTOMER_PRENAME%- LANG: %LANGUAGE%' from dual
3 )
4 , ocrs as(
5 select level as ocr
6 from ( select max(regexp_count(col, '%[^%]+%')) mxo
7 from t1
8 ) s
9 connect by level <= s.mxo
10 )
11 select ltrim(rtrim(regexp_substr(col, '%[^%]+%', 1, o.ocr), '%'), '%') as res
12 from t1
13 cross join ocrs o
14 ;
Result:
RES
--------------------
CUSTOMER_LASTNAME
CUSTOMER_PRENAME
LANGUAGE