PLSQL:在 xml 中查找标签值并将其替换为标签名称以创建示例数据
Posted
技术标签:
【中文标题】PLSQL:在 xml 中查找标签值并将其替换为标签名称以创建示例数据【英文标题】:PLSQL: find and replace tag value in xml with the tag name to create sample data 【发布时间】:2017-11-28 11:22:12 【问题描述】:PLSQL
我想用标签名称替换标签值。 输入:字符串。 输出:转换后的字符串。
示例:<project>aQFH454</project><house>dvdrun</house>
至:<project>project</project><house>house</house>
有人有想法吗?
谢谢。
【问题讨论】:
sql中的用户替换,可以在PL/SQL中使用if then语句,将字符串替换为别的东西。 【参考方案1】:您可以使用函数REGEXP_REPLACE
并提取正确的正则表达式组来做到这一点:
SELECT REGEXP_REPLACE(txt,'(<)(\w+?)(>)(\w+?)(</)(\w+?)(>)+','\1\2\3\2\5\6\7')
FROM (SELECT '<project>aQFH454</project><house>dvdrun</house>' txt FROM dual)
其中组 \2 是标签名称:
<project>project</project><house>house</house>
【讨论】:
【参考方案2】:试试这个。
SELECT REGEXP_REPLACE ('<project>aQFH454</project><house>dvdrun</house>',
'<(.+)>.+</(\1)>',
'<\1>\1</\1>')
FROM DUAL;
【讨论】:
以上是关于PLSQL:在 xml 中查找标签值并将其替换为标签名称以创建示例数据的主要内容,如果未能解决你的问题,请参考以下文章