2つの異なるnls設定を区別する必要があります
-
外部のもの-アプリケーションの環境変数NLS_LANGによって定義されます。これにより、OCIクライアントライブラリにデータを送信するときの内部文字列表現が決まります。
-
内部のもの。これは、Oracleがデータをディスクに保存するために使用する文字セットです。
実行してみてください
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;
US7ASCIIやISO8859P1などを使用していることが示されている場合、Oracleは文字を受け入れ、それをターゲット文字セットに変換します(アクセントを削除するか、「?」に置き換える)。