I need to replace HTML codes with the special characters. I am affected by the HTML code as said here
+------------------------+
+ Html code + Display +
+-----------+------------+
+ À + À +
+ à + à +
+ Á + Á +
+ á + á +
+ È + È +
+ è + è +
+ É + É +
+ é + é +
+ Ì + Ì +
+ ì + ì +
+ Í + Í +
+ í + í +
+ Ò + Ò +
+ ò + ò +
+ Ó + Ó +
+ ó + ó +
+ Ù + Ù +
+ ù + ù +
+ Ú + Ú +
+ ú + ú +
+ « + « +
+ » + » +
+ € + € +
+ ° + ° +
+------------------------+
I found these entries in the database which make no sense. So need to change them into the original symbols (characters)
Data Setup: Also found in this SQL fiddle
The following values must be updated as per the below table
CREATE TABLE TEMP
(
COL1 VARCHAR2(50 CHAR),
COL2 VARCHAR2(50 CHAR),
COL3 VARCHAR2(50 CHAR),
COL4 VARCHAR2(10 CHAR)
);
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA I MAGGIO', 'GIÙ PER LA STRADA', 'TOR LUPARA', '83');
Insert into TEMP (COL1, COL3, COL4)
Values
('VIA D''AZEGLIO', 'MUGGIÒ', '12');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA PONTE NUOVO', 'TOSCA CAFÈ', 'VERONA', '8a');
Insert into TEMP (COL1, COL3, COL4)
Values
('LOCALITÓ AGELLO', 'SAN SEVERINO MARCHE', '60');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA PAPA GIOVANNI XXIII', 'LOCALITÀ PREDONDO', 'BOVEGNO', '24');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA CATANIA', 'CASA DI OSPITAITÀ COLLEREALE', 'MESSINA', '26/B');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('PIAZZA DI SANTA CROCE IN GERUSALEMME', 'MINISTERO BENI E ATTIVITÀ CULTURALI', 'ROMA', '9/a');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA RONCIGLIO', 'LOCALITÀ MONTECUCCO', 'GARDONE RIVIERA', '55');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('BORGO TRINITA''', 'Borgo Trinità, 58', 'BELLANTE', '58');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('10 PIAZZA S. LORENZO', 'ROVARÈ', 'S. BIAGIO DI GALLALTA', '10');
Insert into TEMP (COL1, COL3, COL4)
Values
('LOCALITÀ MALCHINA', 'SISTIANA', '3');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA DEI CROCIFERI', 'PRESSO AUTORITÀ ENERGIA', 'ROMA', '19');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIALE STAZIONE', 'FRAZIONE SAN NICOLÒ A TREBBIA', 'ROTTOFRENO', '10/B');
Insert into TEMP (COL1, COL2, COL3, COL4)
Values
('VIA ADOLFO CONSOLINI', 'ALBARÈ DI COSTERMANO', 'COSTERMANO', '45 B');
COMMIT;
What we see after this setup is
SELECT * FROM TEMP;
COL1 COL2 COL3 COL4
---------------------------------------------------------------------------------- --------------------- --------
VIA I MAGGIO GIÙ PER LA STRADA TOR LUPARA 83
VIA D'AZEGLIO MUGGIÒ 12
VIA PONTE NUOVO TOSCA CAFÈ VERONA 8a
LOCALITÓ AGELLO SAN SEVERINO MARCHE 60
VIA PAPA GIOVANNI XXIII LOCALITÀ PREDONDO BOVEGNO 24
VIA CATANIA CASA DI OSPITAITÀ COLLEREALE MESSINA 26/B
PIAZZA DI SANTA CROCE IN GERUSALEMME MINISTERO BENI E ATTIVITÀ CULTURALI ROMA 9/a
VIA RONCIGLIO LOCALITÀ MONTECUCCO GARDONE RIVIERA 55
BORGO TRINITA' Borgo Trinità, 58 BELLANTE 58
10 PIAZZA S. LORENZO ROVARÈ S. BIAGIO DI GALLALTA 10
LOCALITÀ MALCHINA SISTIANA 3
VIA DEI CROCIFERI PRESSO AUTORITÀ ENERGIA ROMA 19
VIALE STAZIONE FRAZIONE SAN NICOLÒ A TREBBIA ROTTOFRENO 10/B
VIA ADOLFO CONSOLINI ALBARÈ DI COSTERMANO COSTERMANO 45 B
14 rows selected.
What I want to see is that
COL1 COL2 COL3 COL4
------------------------------------- ----------------------------------- ------------------------- ----------
VIA I MAGGIO GIÙ PER LA STRADA LUPARA 83
VIA D'AZEGLIO MUGGIÒ 12
VIA PONTE NUOVO TOSCA CAFÈ VERONA 8a
LOCALITÓ AGELLO SAN SEVERINO MARCHE 60
VIA PAPA GIOVANNI XXIII LOCALITÀ PREDONDO BOVEGNO 24
VIA CATANIA CASA DI OSPITAITÀ COLLEREALE MESSINA 26/B
PIAZZA DI SANTA CROCE IN GERUSALEMME MINISTERO BENI E ATTIVITÀ CULTURALI ROMA 9/a
VIA RONCIGLIO LOCALITÀ MONTECUCCO GARDONE RIVIERA 55
BORGO TRINITA' Borgo TrinitÀ, 58 BELLANTE 58
10 PIAZZA S. LORENZO ROVARÈ S. BIAGIO DI GALLALTA 10
LOCALITÀ MALCHINA SISTIANA 3
VIA DEI CROCIFERI PRESSO AUTORITÀ ENERGIA ROMA 19
VIALE STAZIONE FRAZIONE SAN NICOLÒ A TREBBIA ROTTOFRENO 10/B
VIA ADOLFO CONSOLINI ALBARÈ DI COSTERMANO COSTERMANO 45 B
14 rows selected.
Pitfalls:
Àmay also be written asÀso all the HTML codes must be case insensitive.- More than one HTML code can affect a column. So I need to search all the HTML codes in the table above for any column.
What I tried so far is a simple Update with replace function
UPDATE TEMP
SET COL1 = REPLACE (COL1, 'À' , 'À');
Going by this way, I will spend days to write the scripts. Because I need to carry on this fix in 20+ tables each with 40+ columns. So expecting a simpler way to do this.
Can some one help me out of this writers cramp?
Also which is the best way to replace, is it using the character or ASCII code conversion?
UPDATE:
What exactly I need
How to write update set; either 'À' or CHR(192)
All updates in one statement for one table (May be CASE statement, REGEXP_LIKE and REGEXP_REPLACE combination will do)