Probleem:
U wilt een regeleinde in een kolom verwijderen.
Voorbeeld:
Onze database heeft een tabel met de naam address_book
met gegevens in de kolommen city_name
en company_address
. U wilt elk van de tabbladen en de regeleinden vervangen in het company_address
kolom met ' ' (een spatie) om het visueel aantrekkelijker te maken.
city_name | company_address |
---|---|
Tokio | 15th Oreo Street, Tokio 9870-11 |
Warschau | 18 Marszalkowska Ave, Warschau 03-654 |
Accra | 123 Banana Junction, Cirkel-Accra, 00244 |
Berlijn | 25th Mango Avenue, Asiel omlaag, DE-1234 |
Oplossing:
Dit is de vraag:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Dit is het resultaat van de zoekopdracht:
city_name | company_address |
---|---|
Tokio | 15th Oreo Street, Tokyo 9870-11 |
Warschau | 18 Marszalkowska Ave, Warschau 03-654 |
Accra | 123 Banana Junction, Circle-Accra, 00244 |
Berlijn | 25th Mango Avenue, Asylum Down, DE-1234 |
Discussie:
De REPLACE()
functie wordt over het algemeen gebruikt om alle exemplaren van een opgegeven tekenreeks in een tekenreeks te vervangen door een andere tekenreeks. Je kunt je afvragen waarom we CHR(10)
hebben gebruikt en CHR(13)
in het bovenstaande voorbeeld. De CHR()
functie wordt gebruikt om controletekens in een string in te voegen. CHR(10)
wordt gebruikt om regeleinden in te voegen, CHR(9)
is voor tabbladen, en CHR(13)
is voor retourzendingen.
In het bovenstaande voorbeeld wilden we alle exemplaren van het regeleinde, de tab en de regelterugloop verwijderen, dus gebruikten we CHR(10)
, CHR(9)
, en CHR(13)
. Ze kunnen worden gecombineerd met het aaneenschakelingsteken in Oracle (||
) voor het verwijderen van al hun voorkomens in een kolom. Een voorbeeldsyntaxis is REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ )
.