Oracle10g: Cambia il set di caratteri del database

Può accadere che dopo l'installazione o configurazione di un database Oracle nuovo ci rendiamo conto che il set di caratteri scelti durante l'installazione non è corretta. Quello che può succedere in casi come questo è quello di eliminare il database e riconfigurare o peggio ... Ma non è. Possiamo cambiare il set di caratteri di arresto del database, alzando gli occhi rigorosamente modificando le impostazioni e riavviare il database. Howto:
 
- Prima di tutto la connessione al database  

$ sqlplus sys/pwd@prod as sysdba
 

- Ci fermiamo il database 

SQL>SHUTDOWN IMMEDIATE;

 

- Alziamo rigorosamente * 

SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER DATABASE OPEN;

- Modificare il carattere mappa 
SQL>ALTER DATABASE CHARACTER SET <mappa di caratteri>;

- Riavviare il database e yata 

SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;

Per verificare che le modifiche hanno avuto effetto può eseguire una query sulla vista V $ nls_parameters e controllare il valore di nls_characterset. Sappiamo che, in base ai cambiamenti di codifica che si possono perdere i dati (se del caso) a seconda del cambiamento.
 
* Inoltre, è utile sapere per ottenere il backup del database in modalità limitata è molto utile per effettuare la manutenzione del database che può essere fatto più velocemente quando non le attività degli utenti (come ad esempio la ricostruzione degli indici, la riduzione dei segmenti , ecc.)