1. 程式人生 > 其它 >Oracle切分擷取查詢到的字串regexp_substr()

Oracle切分擷取查詢到的字串regexp_substr()

一、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';

在這裡插入圖片描述