sql >> Base de Datos >  >> RDS >> Oracle

Rails3 no puede guardar 'ñ' en Oracle 11g

Tienes que distinguir dos configuraciones nls diferentes

  • el externo, definido por la variable de entorno NLS_LANG en su aplicación. Esto determina su representación de cadena interna cuando envía datos a la biblioteca cliente de OCI.

  • el interno. Es el conjunto de caracteres utilizado por Oracle para almacenar sus datos en el disco.

Intenta ejecutar

select r.module, t.*
from v$sesssion_connection_info t
join v$session r on (r.sid = t.sid and t.serial# = r.serial#)
where r.sid = <your ruby connection SID>;

select * from nls_database_parameters;
select * from nls_instance_parameters;

Si muestra que está utilizando algo como US7ASCII o ISO8859P1, entonces Oracle acepta su carácter y lo convierte en el conjunto de caracteres de destino (ya sea eliminando un acento o reemplazándolo con '?').