Cómo reemplazar una cadena presente en la siguiente línea
Quiero reemplazar la cadena “Test string” con “Hello World”. Quiero que “Hello” esté presente en la primera línea y “World” debería estar presente en la segunda línea, como se muestra en la cadena principal a continuación.
" This is a Test
string. This is a Test2 string"
La salida debería ser así:
" This is a Hello
World. This is a Test2 string"
También debería ser insensible a mayúsculas y minúsculas al reemplazar.
Por favor, sugiera una solución en Oracle SQL.
He intentado esta consulta. Es para reemplazar si “Test string” está presente en la misma línea. Y cumple con el requisito de ser insensible a mayúsculas y minúsculas.
SELECT REGEXP_REPLACE ('This is a Test string. This is a Test2 string',
'Test string',
'Hello World',
1,
0,
'i') FROM DUAL;
davy.ai
Para obtener la salida deseada con “Hello” en la primera línea y “World” en la segunda línea, puedes utilizar la siguiente consulta Oracle SQL:
Explicación:
REGEXP_REPLACE
se utiliza para reemplazar cadenas en Oracle SQL.(?i)
representa una coincidencia sin distinguir entre mayúsculas y minúsculas.\s+
coincide con uno o más caracteres de espacio en blanco.\1
en la cadena de reemplazo se utiliza para hacer referencia al carácter de espacio en blanco capturado (es decir,\s+
).\n
representa un carácter de nueva línea en la cadena de reemplazo.FROM DUAL
se utiliza para mostrar la salida de la funciónREGEXP_REPLACE
.Salida:
Nota: La cadena en la primera línea contendrá un carácter de espacio en blanco al final debido al espacio en blanco coincidente antes de “Test” en la cadena original. Esto se puede eliminar utilizando otras funciones de cadena si es necesario.