Oracle SQL 问题中 replace() 内部的较低函数

lower function inside replace() in Oracle SQL Problem

我正在搜索模式“hello world”并替换为 Hello Bob。

这里我要匹配hello world的所有模式。问题是我们无法在替换函数中匹配两种模式。所以我把它调低并更换。

作为结果,它将整个字符串变为小写。 “这是 Hello Bob 程序!这是 Hello Bob 程序”

但我想要它作为“T他是你好鲍勃Program!。T他是你好鲍勃 Program

这是查询: select replace(lower('This is Hello World Program!. This is hello world Program'),lower('Hello world'),'Hello Bob') from dual;

有什么建议吗

您收到的结果都是小写的,因为您正在对源字符串执行 LOWER 函数。您可以使用 REGEXP_REPLACE 而不是使用 REPLACE,因为该函数能够忽略区分大小写。

SELECT REGEXP_REPLACE ('This is  Hello World Program!. This is hello world Program',
                       'Hello world',
                       'Hello Bob',
                       1,
                       0,
                       'i')
  FROM DUAL;