sql - Oracle 字符串转换
问题描述
在将以下字符串转换为所需格式时需要帮助。我将有如下几个值。有没有一种简单的方法可以使用 REGEXP 或更好的方法来做到这一点?
当前格式来自 A 列
Region[Envionment Lead|||OTC|||06340|||List Program|||TX|||Z3452|||Souther Region 05|||M7894|||California Divison|||Beginning]
Region[Coding Analyst|||BA|||04561|||Water Bridge|||CA|||M8459|||West Region 09|||K04956|||East Division|||Supreme]
A列所需格式
Region[actingname=Envionment Lead,commonid=OTC,insturmentid=06340,commonname=List Program]
Region[actingname=Coding Analyst,commonid=BA,insturmentid=04561,commonname=Water Bridge]
修改后的数据
**Column data**
Region[Coding Analyst|||BA|||reg pro|||04561|||08/16/2011|||Board member|||AZ|||06340|||Whiter Bridge|||CA|||M0673|||West Region 09|||K04956|||East Division|||Supreme]
**required Data**
{actingname=06340, actingid=M0673, insturmentid=BA, insturmentname=Coding Analyst, commonname=West Region 09, stdate=08/16/2011, linnumber=04561, linstate=CA, linname=Supreme}
问题是获取字符串的 10、11、12 和 15 位置。我可以得到任何低于第 10 个位置的东西,但不能得到 10 个或更多的字符串位置。你能指导我我在这里缺少什么吗
'{actingname=\8,actingid=\11,insturmentid=\2,insturmentname=\1,commonname=\12, stdate=\5,linnumber=4,linstate=10,linname=15}'--Here 10,11,12 and 15 posistion are not being fethched
解决方案
我使用了 REGEXP_REPLACE
SELECT REGEXP_REPLACE(
'Region[Envionment Lead|||OTC|||06340|||List Program|||TX|||Z3452|||Souther Region 05|||M7894|||California Divison|||Beginning]',
'^Region\[([[:alpha:][:space:][:digit:]]*)\|\|\|([[:alpha:]]*)\|\|\|([[:digit:]]*)\|\|\|([[:alpha:][:space:][:digit:]]*).*',
'Region[actingname=\1,commonid=\2,instrumentid=\3,commonname=\4]') as replaced
FROM dual
或者像更新一样
UPDATE table1
SET col1 = REGEXP_REPLACE(
col1,
'^Region\[([[:alpha:][:space:][:digit:]]*)\|\|\|([[:alpha:]]*)\|\|\|([[:digit:]]*)\|\|\|([[:alpha:][:space:][:digit:]]*).*',
'Region[actingname=\1,commonid=\2,instrumentid=\3,commonname=\4]')
推荐阅读
- xgboost - XGBoost 中特征的时间稳定性(在 GLM 意义上)
- html - DIV 中的 DIV 不会在浏览器中显示
- php - 使用 WHILE 循环向数据库添加多行
- go - 如何更改 Hugo 站点中的默认 url“/posts/”路由?
- bash - 从 crontab 调度程序 (Linux) 运行时,Julia 程序停止
- python - 尝试使用 Python3 登录网站
- node.js - How to fetch by id from Firestore?
- c++ - 为什么 string::begin() 会在即时窗口中输出整个字符串
- keyboard-shortcuts - 为什么自定义快捷方式(在 Jupyter Lab 中清除输出)不起作用?
- python - 使用 pandas 将 dfs 列表从 pd.read_html 转换为 dfs