我试过了
select regexp_substr ('sys: error: This is a message ''123:'' for column EMP_NB', '[[:alpha:]_]+',1,9) from dual
我有充满这种类型的数据的列。
sys: error: This is a message '123:' for column EMP_NB.
sys: error: This is a message '45346:' for column EM_NM.
sys: error: This is a message '78324f9:' for column DEPT_NO_VL.
我需要在Oracle SQL中使用regexp_substr这样的输出。挑战在于字符串的长度趋于变化,我只需要提取column
字符串中单词之后的字符即可。
预期产出:
EMP_NB
EM_NM
DEPT_NO_VL
您可以使用
select regexp_substr ('sys: error: This is a message ''123:'' for column EMP_NB', 'column[[:space:]]*([[:alpha:]_]+)', 1, 1, NULL, 1) from dual
这里,
column
-匹配column
单词[[:space:]]*
-0个或更多空白字符([[:alpha:]_]+)
-将第一个或多个字母或下划线捕获到第1组中。由于最后一个组ID参数设置为,因此仅返回捕获的值1
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句