• Publicidad

Codificación al insertar en BBDD

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Codificación al insertar en BBDD

Notapor aivdeveloper » 2011-01-04 05:55 @288

Buenas tardes, tengo un pequeño problema: resulta que tengo un script, que toma un fichero de texto, lo procesa e inserta en BBDD aquellos contenidos del fichero de texto que me interesan.

Ahora bien, antes de insertar en BBDD visualizo en un fichero de logs la salida que voy a introducir en BBDD y observo que la cadena está correctamente (tildes, Ñ, caracteres especiales, etc..) pero al insertar en la BBDD (inserta correctamente) pero al ver el registro desde el SQL Developer (la BBDD es Oracle) compruebo que los registros se insertar con caracteres "extraños" en lugar de sus correspondientes.

¿Cuál puede ser el problema?
aivdeveloper
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-11-09 08:43 @405

Publicidad

Re: Codificación al insertar en BBDD

Notapor explorer » 2011-01-04 08:10 @382

Que alguno o más de los intervinientes en esta historia usa un sistema de codificación distinto al de los demás.

Puede ser el programa que lee, el que inserta, el que visualiza el log, el SQL Developer, el Oracle, el propio sistema operativo...

Necesitarás ver cada registro desde el punto de vista binario. Yo suelo usar una herramienta como hexdump, que saca un volcado del contenido de los ficheros, y ahí se puede ver qué codificación real tenemos.

Lo normal es saber:
* en qué codificación está trabajando la base de datos. Con ese dato, sabemos con qué insertar datos
* si el Oracle hace o no una traducción de codificación cuando se lee o se escribe de él.
* ¿existe otro filtro entre medias? Por ejemplo, el sistema operativo puede tener una capa de traducción sin que nos demos cuenta.

Lo normal es solo el primer punto: el Oracle trabaja en una codificación y admitirá los caracteres que le demos, ya que la codificación solo servirá para realizar las ordenaciones de campos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Codificación al insertar en BBDD

Notapor aivdeveloper » 2011-01-04 08:25 @392

Gracias Explorer por aportar tu conocimiento.

Finalmente, lo he resuelto estableciendo la variable de entorno en el propio script. Lo que me mosquea, es que no me la coja directamente de mi entorno que ya la tengo definida en el .bashrc... pero bueno.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nls_lang = "Spanish_Spain.WE8ISO8859P1";
$ENV{NLS_LANG}=$nls_lang;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Con eso, ¡tira de lo lindo de bonito! ¡je,je,je!
aivdeveloper
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-11-09 08:43 @405


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados