Oracle切分擷取查詢到的字串regexp_substr()
阿新 • • 發佈:2021-04-30
一、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);”,擷取括號裡面的內容,然後在截取出的內容中前後新增拼接的字串
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';