一、REGEXP_SUBSTR
REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
string:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1) 注意:字符串最初的位置是1而不是0
occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)
modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’)针对的是正则表达式里字符大小写的匹配
二、使用举例
本例子截取查询出的结果比如“周凯(empid:e2a2de88-52b6-4646-b7c0-e99ddad4f2aa);”,截取括号里面的内容,然后在截取出的内容中前后添加拼接的字符串
想要的效果为“‘empid:e2a2de88-52b6-4646-b7c0-e99ddad4f2aa’,”
SELECT
extractvalue(r.row_data, '/root/row/HR0019_Worker_num') as AUTHORNUM1,
'''' ||
regexp_substr(extractvalue(r.row_data, '/root/row/HR0019_Worker_num'),
'[^(,)]+',
1,
2) || '''' || ',' as AUTHORNUM2
FROM dat_table_row r
WHERE r.table_id = 'dynamicRowsIdParticipation'
AND r.document_id = 'docid:352ab14a-b2bd-4965-89f3-3f307bb7a228';