Oracle Unicode: differenze tra le versioni

Da Emigar.
Jump to navigation Jump to search
Nessun oggetto della modifica
Riga 1: Riga 1:
==modalità indipendente dal codeset di sessione==
==modalità indipendente dal codeset di sessione==
Per funzionare il terminale deve avere lo stesso codeset della connessione oracle (variabile NLS_LANG).
Per funzionare il terminale deve avere lo stesso codeset della connessione oracle (variabile NLS_LANG).
i terminali linux normalmente hanno codeset UTF8.
i terminali linux nativi normalmente hanno codeset UTF8.
verifica se il terminale è impostato bene:
verifica se il terminale è impostato bene:

select 'a minuscola accentata e simbolo euro',unistr('\00E0\20AC') from dual;
select 'a minuscola accentata e simbolo euro',unistr('\00E0\20AC') from dual;


Riga 24: Riga 25:
SQL>
SQL>


===correggere tabelle con caratteri sporchi===

Per trovare le righe con caratteri estesi:

select COLONNA1 || ' ###### ' || asciistr(COLONNA1) from TABELLA1 where asciistr(COLONNA1) like '%\%';

Per modificare i caratteri estesi:

update TABELLA1 set COLONNA1=unistr(replace(asciistr(COLONNA1),'\00E0\00A0','\00E0')) where asciistr(COLONNA1) like '%\00E0\00A0%';


[[Categoria:Database]]
[[Categoria:Database]]

Versione delle 10:31, 26 ott 2022

modalità indipendente dal codeset di sessione

Per funzionare il terminale deve avere lo stesso codeset della connessione oracle (variabile NLS_LANG). i terminali linux nativi normalmente hanno codeset UTF8. verifica se il terminale è impostato bene:

select 'a minuscola accentata e simbolo euro',unistr('\00E0\20AC') from dual;


caratteri estesi

SQL> select UNISTR('\20AC') from dual;
UNISTR('\20AC')
--------------------------------------------------------------------------------
€


SQL> select asciistr('€') from dual;
ASCIISTR('€')
--------------------------------------------------------------------------------
\20AC
SQL> 

correggere tabelle con caratteri sporchi

Per trovare le righe con caratteri estesi:

select COLONNA1 || ' ###### ' || asciistr(COLONNA1) from TABELLA1 where asciistr(COLONNA1) like '%\%';

Per modificare i caratteri estesi:

update TABELLA1 set COLONNA1=unistr(replace(asciistr(COLONNA1),'\00E0\00A0','\00E0')) where asciistr(COLONNA1) like '%\00E0\00A0%';