我正在使用Oracle 11.g
。在发送之前,我必须在eMail clob中replace
一个字符串。大字符串看起来像:
<p>
Text right before the HP image.</p>
<p>
<img alt="" src="data:image/jpeg;base64,//(a variable amount of encoded data)//"></p>
<p>
Text right after the image.</p>
<p>
</p>
之前的文本以及IMG
标记之后的文本将具有可变长度。我想替换IMG
代码中的大量文字:
<img alt="" src="data:image/jpeg;base64,//(a variable amount of encoded data)//">
始终如下文字:
<img src="cid:image.jpg" alt="This is a banner"/>
我使用INSTR
查找IMG
标记的开头和结尾,并将它们存储在局部变量中。我无法弄清楚如何替换那些可变位置。
感谢您的帮助。
答案 0 :(得分:1)
您应该可以使用REGEXP_REPLACE()
来完成此任务:
SELECT REGEXP_REPLACE(mytext, '<img alt="" src="data:image/jpeg;base64,[^"]*">', '<img src="cid:image.jpg" alt="This is a banner"/>', 'i') AS mynewtext
FROM mytable
最好在发送代码中进行搜索和替换,而不是在查询本身中进行搜索和替换。