我有一个clob field
rq_dev_comments,应该用“匿名”替换用户名
Update <TABLE>.req
Set rq_dev_comments = regexp_REPLACE(rq_dev_comments,
'\<[bB]\>.*gt;,', '<b>anonymous ')
where length(rq_dev_comments) > ...
现在我的问题是,如果有一种方法可以检查“anonymous”是否已经设置,以及如何减少数据集?
示例:
rq_dev_comments = "<html><b>HendrikHeim</b>: I found an error....</html>"
所需:"<html><b>Anonymous</b>: I found an error....</html>"
答案 0 :(得分:1)
以下解决方案不会捕获“用户名”可能出现多次的情况,有些但并非所有事件都已被“匿名”替换。所以在使用之前要三思而后行。 (同样适用于你所要求的任何解决方案!)
将以下内容添加到WHERE子句中:
... where length(...) ....
and dbms_lob.instr(rq_dev_comments, '<b>Anonymous') = 0
“= 0”表示在输入字符串中找不到搜索模式。
另一件事:在示例中,您显示“匿名”大写(大写A),但在您的代码中,您将全部小写。决定这种或那种方式并保持一致。祝你好运!