Du måste skilja på två olika nls-inställningar
-
den externa - definieras av miljövariabeln NLS_LANG i din applikation. Detta bestämmer din interna strängrepresentation när du skickar data till OCI-klientbiblioteket.
-
den inre. Det är teckenuppsättningen som används av Oracle för att lagra dina data på disken.
Försök att köra
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;
Om det visar att du använder något som US7ASCII eller ISO8859P1 accepterar Oracle din karaktär och konverterar den till målteckenuppsättning (antingen genom att ta bort en accent eller genom att ersätta med '?').