cambiar NLS_CHARACTERSET oracle 11g

1. habian instalado el sistema operativo ORACLE LINUX en otro idioma, dando estos valores[oracle@dbs]$ echo $LANG
es_ES.UTF-8
[oracle@dbs]$ locale
LANG=es_ES.UTF-8
LC_CTYPE=”es_ES.UTF-8″
LC_NUMERIC=”es_ES.UTF-8″
LC_TIME=”es_ES.UTF-8″
LC_COLLATE=”es_ES.UTF-8″
LC_MONETARY=”es_ES.UTF-8″
LC_MESSAGES=”es_ES.UTF-8″
LC_PAPER=”es_ES.UTF-8″
LC_NAME=”es_ES.UTF-8″
LC_ADDRESS=”es_ES.UTF-8″
LC_TELEPHONE=”es_ES.UTF-8″
LC_MEASUREMENT=”es_ES.UTF-8″
LC_IDENTIFICATION=”es_ES.UTF-8″
LC_ALL=

lo cambien siguiedo los consejos en http://linuxeros-faq.blogspot.com/2010/06/como-cambiar-el-idioma-en-sistemas.html para centos system-config-language u en forma grafica Sistema –> Administracion –> idiomas

2. Lo siguiente era cambiar el set de caracter ya que esta no pasaba la importacion de una base de datos en 9i

ERROR AL IMPORTAR LOS DATOS:
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: el valor es demasiado grande para la columna “USUARIO”.”TABLA”.”CAMPO_NOMCTO” (real: 31, maximo: 30)
Column 1 304
Column 2 205732
Column 3 CAMPOS
Column 4 YA?EZ
Column 5 MARIA LUPE
Column 6 CAMPOS YA?EZ MARIA LUPE

parametro que tenia en archivo init*.ora en la base oracle 11g
*.nls_language=’SPANISH’
*.nls_territory=’SPAIN’
lo cambien a
*.nls_language=’MEXICAN SPANISH’
*.nls_territory=’MEXICO’

Baje la base lo subi y no funciona la importacion de datos

Opte por cambiar variables de ambiente
La exportacion de datos del dmp se hace con la varaible al valor:
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1;
y se intento importar de esta forma y tambien de export NLS_LANG=SPANISH_SPAIN.WE8ISO8859P1 dando el mismo error de importacion de datos

Verifique juego de caracteres en ambas bases 9i y 11g
Juego de caracteres en ORACLE 9I
dbnorte/ oracle@itanium_:~$ sqlplus /nolog
SQL*Plus: Release 9.2.0.5.0 – Production on Vie Sep 16 12:54:17 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> select value from nls_database_parameters where parameter = ‘NLS_CHARACTERSET’;
VALUE
—————————————-
WE8PC850

Juego de caracter en base oracle 11g
SQL> select value from nls_database_parameters where parameter = ‘NLS_CHARACTERSET’;
VALUE
———————————————————
AL32UTF8

se siguieron los pasos que estan en el link
http://oracle.ittoolbox.com/groups/technical-functional/oracle-db-l/changing-character-set-of-oracle-database-87376
en especial estos:
SQL> SHUTDOWN IMMEDIATE; — or NORMAL

SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET ;
SQL> SHUTDOWN IMMEDIATE; — or NORMAL
SQL> STARTUP;

error al ejecutar la sentencia
SQL> alter database character set WE8MSWIN1252
2 ;
alter database character set WE8MSWIN1252
*
ERROR en linea 1:
ORA-12712: el juego de caracteres nuevo debe ser un superjuego del juego de
caracteres antiguo

Entonces segui la recomendacion de este link estando la base en modo restringido para processos y sesiones tal como se indico arriba

SQL> shutdown immediate;
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> startup;
Instancia ORACLE iniciada.

Total System Global Area 2.0310E+10 bytes
Fixed Size 2212976 bytes
Variable Size 1.1006E+10 bytes
Database Buffers 9126805504 bytes
Redo Buffers 175132672 bytes
Base de datos montada.
Base de datos abierta.
SQL> alter database character set WE8MSWIN1252
2 ;
alter database character set WE8MSWIN1252
*
ERROR en linea 1:
ORA-12712: el juego de caracteres nuevo debe ser un superjuego del juego de
caracteres antiguo

SQL> exit
Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@siilprueba dbs]$ exit
logout

Connection to 172.30.10.65 closed.
heli@centauro:~$ ssh oracle@172.30.10.65
oracle@172.30.10.65’s password:
Last login: Fri Sep 16 12:15:26 2011 from 193.0.0.160
[oracle@siilprueba ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 16 14:32:13 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select value from nls_database_parameters where parameter = ‘NLS_CHARACTERSET’;

VALUE
——————————————————————————–
AL32UTF8
}

SOLUCION SQL> shutdown immediate;
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> startup mount;
Instancia ORACLE iniciada.

Total System Global Area 2.0310E+10 bytes
Fixed Size 2212976 bytes
Variable Size 1.1006E+10 bytes
Database Buffers 9126805504 bytes
Redo Buffers 175132672 bytes
Base de datos montada.
SQL> ALTER SYSTEM ENABLE RESTRIcted session;
Sistema modificado.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
Sistema modificado.

SQL> alter database open;
Base de datos modificada.

SQL> ALTER DATABASE NATIONAL CHARACTER SET WE8MSWIN1252;
ALTER DATABASE NATIONAL CHARACTER SET WE8MSWIN1252
*
ERROR en linea 1:
ORA-12714: juego de caracteres nacional especificado no valido

SQL> ALTER DATABASE CHARACTER SET WE8MSWIN1252;
ALTER DATABASE CHARACTER SET WE8MSWIN1252
*
ERROR en linea 1:
ORA-12712: el juego de caracteres nuevo debe ser un superjuego del juego de
caracteres antiguo

SQL> UPDATE PROPS$ SET VALUE$ = ‘WE8MSWIN1252’ WHERE NAME = ‘NLS_CHARACTERSET’;

1 fila actualizada.

SQL> commit;

Confirmacion terminada.

SQL> shutdown immediate;
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> startup;
Instancia ORACLE iniciada.

Total System Global Area 2.0310E+10 bytes
Fixed Size 2212976 bytes
Variable Size 1.1006E+10 bytes
Database Buffers 9126805504 bytes
Redo Buffers 175132672 bytes
Base de datos montada.
Base de datos abierta.
SQL> select value from nls_database_parameters where parameter = ‘NLS_CHARACTERSET’;

VALUE
—————————————-
WE8MSWIN1252

–La base nuevamente y la volvi a subir par aver que hubiera tomado los cambios permanentemente

Lance nuevamente la importacion , ya NO ambiente la variable NLS_LANG
imp usuario/contraseña file=archivo.dmp log=imp_110916_1439_archivo.log ignore=y statistics=none fromuser=deusaurio touser=ausuario

Import terminated successfully with warnings.

Publicado por en 13:01