Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Rails3 não pode salvar 'ñ' no Oracle 11g


Você tem que distinguir duas configurações nls diferentes

  • o externo - definido pela variável de ambiente NLS_LANG em sua aplicação. Isso determina sua representação de string interna quando você envia dados para a biblioteca cliente OCI.

  • o interno. É o conjunto de caracteres usado pelo Oracle para armazenar seus dados em disco.

Tente executar
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;

Se ele mostrar que você está usando algo como US7ASCII ou ISO8859P1, o Oracle aceita seu caractere e o converte no conjunto de caracteres de destino (removendo um acento ou substituindo por '?').