Musisz rozróżnić dwa różne ustawienia nls
-
zewnętrzny - zdefiniowany przez zmienną środowiskową NLS_LANG w Twojej aplikacji. To określa twoją wewnętrzną reprezentację ciągu podczas wysyłania danych do biblioteki klienta OCI.
-
wewnętrzny. Jest to zestaw znaków używany przez Oracle do przechowywania danych na dysku.
Spróbuj wykonać
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;
Jeśli pokazuje, że używasz czegoś takiego jak US7ASCII lub ISO8859P1, Oracle zaakceptuje twój znak i zamieni go na docelowy zestaw znaków (albo przez usunięcie akcentu, albo przez zastąpienie go znakiem '?').