jueves, noviembre 29, 2012

Oracle: cambio de juego de caracteres


Hay un tipo de cambios de juego de caracteres muy sencillo: Ocurre cuando tenemos un juego de caracteres limitado y queremos cambiar a un superconjunto (superset) mayor. Si no es así, no emplear este método. Toca documentarse mejor.

Por ejemplo es habitual cambiar el clásico WE8ISO8859P1 que no soporta el símbolo del euro (€) por el juego de caracteres WE8MSWIN1252 que incorpora todos los caracteres del anterior más otros muchos más (entre ellos el del euro).

En este caso el cambio es muy sencillo.

$sqlplus "/as sysdba"

Primero comprobamos que estamos en el host y la instancia adecuada (host_name e instance_name):
SELECT * FROM V$INSTANCE;

Luego conviene que nos aseguremos del juego de caracteres actual. Nos fijamos en el parámetro NLS_CHARACTERSET:

SELECT * FROM V$NLS_PARAMETERS;

SHUTDOWN IMMEDIATE;
STARTUP RESTRICT;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE CHARACTER SET WE8MSWIN1252;

Comprobación:
SELECT * FROM V$NLS_PARAMETERS;

Saludos,





No hay comentarios: