[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.
15 comentarios:
Gran explicacion.
Tenia el mismo problema y siguiendo los pasos, ya esta solucionado.
Gracias!!
Master el unico que lo ha solucionado los demas foros puras pajas
Gracias por las indicaciones, tal cual modificado.
Un saludo!
Buen detalle, perfecto, modificado correctamente.
Un saludo.
Sencillamente sensacional. Siempre he pensado que cuando tienes este tipo de problemas, encontrar un comentario como este no tiene precio... solo depende del tiempo que te haya costado encontrarlo!!!
Mil gracias
72 Horas después, no sirvieron ni 14 años de experiencia en Oracle ni el servicio de soporte ni buscar en google hasta el cansancio.
Gracias de verdad.
Excelente post, realmente lo que otras personas comentan son ciertas, a veces ciertos trucos le pasan por encima a años de experiencia. Muchas gracias
Excelente amigo, muchisimas gracias. Funciono a la primera. Es la unica solucion!
Excelente amigo, muchisimas gracias. Funciono a la primera. Es la unica solucion!
Excelente, y había intentado hacerlo por el regedit pero no me funcionó, muchas gracias por tu aporte.
hola buen dia despues de ese procedimiento ¿se tendria que ejecutar los scripst para actualizar el diccionario de datos?
hola buen dia despues de ese procedimiento ¿se tendria que ejecutar los scripst para actualizar el diccionario de datos?
Muchisimas Gracias: Me ahorraste un tedioso y odioso trabajo, ahora solo debo analizar porque el 11g no reconoce la "..Ñ.." y me pone un "..?.." pero bueno eso esta mas facil ..creo, Gracias nuevamente eres genial.
Funciona muy bien !!... gracias!
Excelente, gracias
Publicar un comentario