Oracle Unicode: differenze tra le versioni

Da Emigar.
Jump to navigation Jump to search
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 32: Riga 32:
\20AC
\20AC


SQL>


Questi i principali caratteri accentati:
Questi i principali caratteri accentati:


SQL> select asciistr('èÈéÉàÀìÌòÒùÙ') from dual;
SQL> select asciistr('èÈéÉàÀìÌòÒùÙ') as caratteri_accentati from dual;


CARATTERI_ACCENTATI
ASCIISTR('ÈÉÒÀÙ¿¿È¿É¿ÉÀÀ¿¿ÌÒÒÙÙ')
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
\00E8\00E9\00F2\00E0\00F9\00BF\00BF\00C8\00BF\00E9\00BF\00C9\00E0\00C0\00BF\00BF
\00E8\00C8\00E9\00C9\00E0\00C0\00EC\00CC\00F2\00D2\00F9\00D9
\00CC\00F2\00D2\00F9\00D9


SQL>

===correggere tabelle con caratteri sporchi===


===correggere caratteri estesi===
Spesso, per non corrispondenza del codeset del file di input con il codeset della sessione oracle, vengono inseriti caratteri estesi non corrispondenti al file di input.
Per trovare le righe con caratteri estesi:
Per trovare le righe con caratteri estesi:



Versione attuale delle 19:10, 3 nov 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;


SQL> select unistr('Modalit\00E0 Euro(\20AC)') from dual;
UNISTR('MODALIT\00E0EURO(\20AC)')
----------------------------------------------------------------
Modalità Euro(€)
SQL> 

caratteri estesi

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


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


Questi i principali caratteri accentati:

SQL> select asciistr('èÈéÉàÀìÌòÒùÙ') as caratteri_accentati from dual;
CARATTERI_ACCENTATI
--------------------------------------------------------------------------------
\00E8\00C8\00E9\00C9\00E0\00C0\00EC\00CC\00F2\00D2\00F9\00D9

correggere caratteri estesi

Spesso, per non corrispondenza del codeset del file di input con il codeset della sessione oracle, vengono inseriti caratteri estesi non corrispondenti al file di input. 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%';