sql >> Base de Datos >  >> RDS >> Oracle

Cómo reemplazar una nueva línea en Oracle

Problema:

Le gustaría eliminar un salto de línea en una columna.

Ejemplo:

Nuestra base de datos tiene una tabla llamada address_book con datos en las columnas city_name y company_address . Le gustaría reemplazar cada una de las pestañas y los saltos de línea en company_address columna con " " (un espacio) para que sea más atractivo visualmente.

nombre_ciudad dirección_de_la_empresa
Tokio Calle Oreo 15,

Tokio

9870-11
Varsovia Avenida Marszalkowska 18,

Varsovia

03-654
Acra 123 cruce de plátanos,

Círculo-Accra,

00244
Berlín Avenida Mango 25,

Asilo Abajo,

DE-1234

Solución:

Aquí está la consulta:

SELECT
   city_name,
   REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘)
FROM address_book;

Este es el resultado de la consulta:

nombre_ciudad dirección_de_la_empresa
Tokio Calle Oreo 15, Tokio 9870-11
Varsovia 18 Marszalkowska Ave, Varsovia 03-654
Acra 123 Banana Junction, Circle-Accra, 00244
Berlín 25th Mango Avenue, Asylum Down, DE-1234

Discusión:

El REPLACE() La función generalmente se usa para reemplazar todas las apariciones de una cadena especificada en una cadena con otra cadena. Puede preguntar por qué usamos CHR(10) y CHR(13) en el ejemplo anterior. El CHR() La función se utiliza para insertar caracteres de control en una cadena. CHR(10) se usa para insertar saltos de línea, CHR(9) es para pestañas, y CHR(13) es para retornos de carro.

En el ejemplo anterior, queríamos eliminar todas las apariciones del salto de línea, del tabulador y del retorno de carro, por lo que usamos CHR(10) , CHR(9) y CHR(13) . Se pueden combinar usando el signo de concatenación en Oracle (|| ) para eliminar todas sus apariciones en una columna. Un ejemplo de sintaxis es REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .