Anda harus membedakan dua pengaturan nls yang berbeda
-
yang eksternal - ditentukan oleh variabel lingkungan NLS_LANG di aplikasi Anda. Ini menentukan representasi string internal Anda saat Anda mengirim data ke pustaka klien OCI.
-
yang internal. Ini adalah set karakter yang digunakan oleh Oracle untuk menyimpan data Anda di disk.
Coba jalankan
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;
Jika itu menunjukkan, bahwa Anda menggunakan sesuatu seperti US7ASCII atau ISO8859P1 maka Oracle menerima karakter Anda dan mengubahnya menjadi kumpulan karakter target (baik dengan menghilangkan aksen atau menggantinya dengan '?').