Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como substituir uma nova linha no Oracle

Problema:


Você gostaria de remover uma quebra de linha em uma coluna.

Exemplo:


Nosso banco de dados tem uma tabela chamada address_book com dados nas colunas city_name e company_address . Você deseja substituir cada uma das guias e as quebras de linha no company_address coluna com ‘ ‘ (um espaço) para torná-la mais atraente visualmente.
city_name company_address
Tóquio Rua 15 Oreo,

Tóquio

9870-11
Varsóvia 18 Marszalkowska Avenue,

Varsóvia

03-654
Acra 123 Banana Junction,

Círculo-Acra,

00244
Berlim 25th Mango Avenue,

Asilo para baixo,

DE-1234

Solução:


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

Segue o resultado da consulta:
city_name company_address
Tóquio 15th Oreo Street, Tóquio 9870-11
Varsóvia Ave Marszalkowska 18, Varsóvia 03-654
Acra 123 Banana Junction, Circle-Accra, 00244
Berlim 25th Mango Avenue, Asylum Down, DE-1234

Discussão:


O REPLACE() A função geralmente é usada para substituir todas as ocorrências de uma string especificada em uma string por outra string. Você pode perguntar por que usamos CHR(10) e CHR(13) no exemplo acima. O CHR() A função é usada para inserir caracteres de controle em uma string. CHR(10) é usado para inserir quebras de linha, CHR(9) é para guias e CHR(13) é para retornos de carro.

No exemplo acima, queríamos remover todas as ocorrências de quebra de linha, tabulação e retorno de carro, então usamos CHR(10) , CHR(9) e CHR(13) . Eles podem ser combinados usando o sinal de concatenação no Oracle (|| ) para remover todas as suas ocorrências em uma coluna. Um exemplo de sintaxe é REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .