Carateres Especiales, Tildes y Ñ's Oracle 10g

Estoy teniendo un problema con otra importación, he hecho el export desde una BD Oracle 8.1.7.4 en Solaris, hasta una 10g también en Solaris, el archivo de export se crea correctamente, pero resulta que cuando estoy haciendo el import con todas las modificaciones que amablemente me habías comentado en una pregunta anteiror, todo marcha bien excepto por que me cuando encuentra caracteres especiales como letras con tildes o ñ's el dato se hace más extenso y no cabe en la longitud que el campo, es decir, si el dato es 'comesaña', cuando intenta hacer el import escribe 'comesa/?rsa' y el dato se vuelve más extenso, que podría estar causando ese error.
Esto no se me presento en el anterior import.

1 Respuesta

Respuesta
1
¿Cuándo haces el import, no te sale ningún 'Warning' sobre que el export se ha realizado utilizando un 'set de caracteres' diferente al de la BB. DD. Receptora?
Es más que probable que te esté pasnado eso. Que el NLS_LANGUAGE de Oracle sea diferente entre una BB. DD. Y la otra.
Verificamelo, y continuamos con la posible solución.
Mira, por si acaso también el 'lang' de los diferentes UNIX.
(Porque supongo que si has hecho un 'ftp' lo habrás realizado en binario, ¿no?!).
Si manda un mensaje warning de conversión o algo así
He hecho la consulta en la tabla V$NLS_PARAMETERS en Oracle10g y el valor de NLS_NCHAR_CHARACTERSET y el de NLS_CHARACTERSET es UTF8.
La misma consulta pero en Oracle 8 me dice que el valor de NLS_NCHAR_CHARACTERSET y el de NLS_CHARACTERSET es US7ASCII.
Mi pregunta compañero es, ¿Cómo hago para cambiar el conjunto de caracteres de Oracle 10g y ponerlo igual a la de Oracle 8 (que los valores de NLS_NCHAR_CHARACTERSET y el de NLS_CHARACTERSET sean iguales tanto en 10g como en 8)? , solo haciendo un Update normal de la tabla? ¿O tengo que hacer algún cambio en el Init. Ora?
Esto con el fin de dejar en ambas bases de dato el mismo conjunto de caracteres (US7ASCII) y luego hacer nuevamente el Import y el Export a fin de evitar el error.
He estado leyendo en internet y encontré una página donde decía que el conjunto de caracteres no se puede modificar después de instalada la base de datos, ¿qué de cierto tiene esto?
Gracias por la ayuda que me pueda brindar
Quedo atento;
Ellery Sammy
Efectivamente en anteriores versiones de Oracle la única alternativa era el re-crear de nuevo la Base de Datos. Por suerte y si cuentas con las versiones (Standard o Enterprise y siendo 10g) puedes considerarte afortunado, ya que hay un método y 'script' para realizar este tipo de cambios. A mi en anteriores versiones ya me ocurrió.
De todas formas, espero que cuentes con tu fichero *. Dmp -del export- de l aversión 8 o si aún está en producción lo puedes extraer de nuevo. Por si acaso.
Existe un script llamado 'CSALTER' que te permite cambiar. Y en este caso mejor que ninguno ya que pasarías de una de 7 bytes a una de 8 bytes. Como el proceso es largo de explicar, a continuación de marco una página del manual de Oracle 10g donde explica detalladamente todos los pasos a realizar.
Que en tu caso pasara por cambiar el set de caracteres de la 10g, y dejarlo como lo tienes en la 8i.
Hay varias opciones, yo te recomiendo usar la :
- Migrating a Character Set Using the CSALTER Script
Pero puedes optar por alguna de las otras dos opciones ...
Recuerda de seguir todos los pasos indicaddos para no tener problemas ... OK
Te dejo un link de ayuda del manual de Oracle colgado en la red, para que sigas paso a paso todo lo que se indica ... Ya que explicártelo por aquí es bastante largo y como el pegar texto te modifica lo escrito, prefiero que lo leas desde donde está ubicado.
Ya me comentarás como te ha ido. (Piensa que antes no era algo tan sencillo, pero Oracle al ver que estas situaciones se producían habitualmente han decidido dar un script de soporte.
Un Saludo y recuerda ... comentame como te ha ido.
http://youngcow.net/doc/oracle10g/server.102/b14225/ch11charsetmig.htm#CEGHDCJF
Buena tarde Ramon,
La verdad desistí del exp/imp y opte por un upgrade que creí es un camino menos complicado, aunque también me pidió cambiar algunas cosas con relación al character set y una que otra casa, hasta ahora ha estado andando bien, no me he podido percatar de como termino por que di con eso a ultima hora del viernes en la oficina y lo deje corriendo, ya veré como quedo el lunes.
Muchas Gracias por su ayuda y el interés mostrado, me sirvió de mucho y espero poder seguir contando con su valiosa colaboración.
Muchas Gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas