Oracle
 sql >> Base de données >  >> RDS >> Oracle

Rails3 ne peut pas enregistrer 'ñ' dans Oracle 11g

Vous devez distinguer deux paramètres nls différents

  • l'externe - défini par la variable d'environnement NLS_LANG dans votre application. Cela détermine votre représentation de chaîne interne lorsque vous envoyez des données à la bibliothèque cliente OCI.

  • celui interne. C'est le jeu de caractères utilisé par Oracle pour stocker vos données sur disque.

Essayez d'exécuter

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;

S'il montre que vous utilisez quelque chose comme US7ASCII ou ISO8859P1, Oracle accepte votre caractère et le convertit en jeu de caractères cible (soit en supprimant un accent, soit en le remplaçant par '?').